2012-03-29 20 views
0

からフォーマット文字列ちょっと私のような文字列を持っている:私は(左から右に読んで)右の最初のPIPEのdelimter前に番号を取ることを望むパイプで区切られた文字列

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

と交換してください私が持っている別の文字列と文字列の一部..私は、交換した新しい構築文字列を持つことを望むよりも、

...例えば

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

はになることができます:

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

任意のヘルプをあなたが第二のサブストリングを使用して、別の文字列をCONCAT、その後、2つのストリングに文字列を分割することができ

+0

感謝を! – OakvilleWork

答えて

3

私は最も単純ソリューションがあると思う:

  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 ||| LESセドル| J7T1J9 | QC

s1.substring(s1.indexOf("||")あなたに与えます:

|| 190 || RUEレイチェル|| ST ||| LESセドル| J7T1J9 |すべてのヘルプのためのQC

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)正規表現の魔法はどのように機能しますか? –

+0

@GregKopff 2番目の引数は、文字列を2つの部分文字列に分割するようにJVMに指示します。つまり、JVMは正規表現の最初の出現をチェックし、そこから文字列を分割します。文字列中の正規表現の出現をチェックしません。 –

+0

私が困惑しているのは、あなたがsplit()に与える正規表現は入力文字列そのものです。それはどのように必要なビットと一致しますか? (私は多くの正規表現を使用しないでください)。パイプ区切り文字も特別な正規表現文字であるという事実に頼っていますか? –

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'は引数として正規表現をとります。したがって、部分文字列が無効なパターンになった場合、それは失敗します。ここでこれを使うのは少し危険です。それ以外のpbは、部分文字列が '1 'の場合、すべての' 1'が置換されます。最初の部分だけでなく、 –

関連する問題