2017-03-13 20 views
0

私はcsvファイル内に、私の一部を置き換える必要があるアドレス列を持っています。それはストリート、ドライブ、アベニュー等の略語を保持しています...私はreplacedStrがこれを行う正確な方法ではないことを知っています。私はStreetream Way Streetに置き換えられるStream Way Stのようなアドレスを持っています。これどうやってするの?文字列の真ん中を置き換えます。

String str = "1234 Stack Overflow Dr"; 
String replacedStr = str.ReplaceAll("Dr","Drive"); 

System.out.println(str); 
System.out.println(replacedStr); 

出力:

1234 Stack Overflow Dr 
1234 Stack Overflow Drive ----------- Requested 
+2

どのような問題に直面していますか? 'str.replaceAll(" Dr "、" Drive ")'はあなたの要求に対してうまく動作します – Pons

+0

これはawkやsedの仕事のようです。 –

+0

「Street Stream St」のようなアドレスを「Streetream Way Street」に置き換えました。 –

答えて

3

String str = "1234 StaDrck Overflow Dr"; 
String replacedStr = str.replaceAll("\\bDr\\b","Drive"); 

別例えば、

String str = "Stream Way St"; 
    String replacedStr = str.replaceAll("\\bSt\\b","Street"); 


    System.out.println(str); 
    System.out.println(replacedStr); 

出力

、これを試してみてください

'STR' - ストリームウェイセント

'replacedStr' - ストリーム・ウェイ・ストリート

+0

Ponsさんのおかげです。 –

+0

このアプローチは、たとえば次のようには機能しません。 "St Elmo's avenue"を入力文字列として使用します。 –

3

のは、正規表現を使用してみましょう!

正規表現/\bDr\b/は、必要なものと一致している必要があります(一致する必要がある場合は、DrとStを置き換えてください)。これに相当するJavaは\\bDr\\b

newString = oldString.replace("\\bDr\\b", "Drive"); 
関連する問題