2017-07-05 15 views
0

文字を置換しようとしました。文字列内のすべての文字が別の文字と置き換えられます。サブストリングに一致した後に文字列の後続の文字をすべて置換する

これまでのコードです。

String name = "Peter Pan"; 
name = name.replace("er", "abc"); 
Log.d("Name", name) 

結果は次のようになります。「Petabc」

は、私は非常にこの問題上の任意の助けをいただければ幸いです!

+0

'replace()'は、あなたが渡したパラメータ(あなたの場合は'er ')のみを置き換えます。 – luizfzs

+0

結果が** Petabc **の場合、** name.replace( "er"、 "abc")**のコード出力は何ですか?あなたのデバッグは何ですか? – ShayHaned

+0

@ShayHanedデバッグで「Petabc Pan」が返される – LoveCoding

答えて

1

あなたの目標をachiveする方法:

  • あなたは、インデックスと文字列の#サブストリング
  • を使用して文字列をカットがあなたを追加することを
  • 使用を交換したいsequnceの最初の出現のための文字列を検索しますシーケンスを、作成した部分文字列の末尾に置き換えます。

finです。

幸運。

EDITコードで

それは

public static String customReplace(String input, String replace) 
{ 
int index = input.indexOf(replace); 

if(index >= 0) 
{ 
    return input.substring(index) + replace; //cutting string down to the required part and adding the replace 
} 
else 
    return null; //String 'input' doesn't contain String 'replace' 
} 
+0

ありがとう、それは実際に今働く:) – LoveCoding

0

あなたは非常に簡単にあなたがやりたいビルトインreplaceAll方法String年代にここに正規表現を使用することができます(テストしていない)、このようになります。 :たとえば

original.replaceFirst(toReplace + ".*", replaceWith); 

String original = "testing 123"; 
String toReplace = "ing"; 
String replaceWith = "er"; 
String replaced = original.replaceFirst(toReplace + ".*", replaceWith); 

上記の後、replaced"tester"に設定されます。

関連する問題