2012-03-29 124 views
0

嘿,我有一個字符串,例如:格式字符串

357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC 

我希望第一管delimter之前有權採取數字(從左至右)

和替換用另一個字符串我有字符串的一部分..

比我希望有一個新的構造字符串替換...

例如:

357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC 

可以變成:

48949168||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC 

任何幫助,將不勝感激

+0

感謝所有幫助! – OakvilleWork 2012-03-29 16:18:21

回答

3

我認爲simpliest解決辦法是:

  String s1 = "357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC"; 
      String s2 = "48949168"; 
      System.out.println(s2+s1.substring(s1.indexOf("||"))); 

輸出

48949168 || || 190 RUE蕾切爾|| ||| ST LESCÈDRES | J7T1J9 | QC

s1.substring(s1.indexOf("||")爲您提供:

|| 190 || RUE蕾切爾|| ST ||| LESCÈDRES| J7T1J9 | QC

2

您可以將字符串分割成2子,然後CONCAT您的另一個字符串與第2子。

String s = "357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC"; 
String s1 = "48949168"; 
String a[] = s.split(s,2); 
String b = s1+a[1]; 
System.out.println(b); 
+0

s.split(s,2)這個正則表達式的魔法是如何工作的? – 2012-03-29 04:49:49

+0

@GregKopff第二個參數將告訴JVM將字符串拆分爲只有2個子字符串。這意味着JVM將檢查正則表達式的第一次出現並從那裏分割字符串。它不會檢查字符串中進一步的正則表達式出現。 – 2012-03-29 04:52:24

+0

我感到困惑的是你提供給split()的regex是輸入字符串本身。這只是如何匹配所需的位? (我不使用正則表達式)。你是否依靠管道分隔符也是一個特殊的正則表達式字符的事實? – 2012-03-29 05:21:03

0
String s2 = "357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC"; 
String s3 = "48949168"; 
System.out.println(s2.replaceAll(s2.substring(0,s2.indexOf("||")), s3)); 
+1

'replaceAll'將regex作爲參數,所以如果你的子字符串導致無效模式,它將失敗。這裏使用這個有點危險。例如,如果子字符串等於「1」,例如所有的「1」都將被替換。不僅是第一部分。 – 2012-03-29 08:44:50