2016-04-12 4 views
0
内の文字列

例から複数のサブストリングの交換:は、Java/Androidの

String originalString = "This is just a string folks"; 

私は削除(または "" に置き換える)したい:1. "This is" , 2. "folks" 所望の出力:Soleの

finalString = "just a string"; 

substringは簡単ですが、replace/replaceAllを使うことができます。 私はそれが様々な数値のために働くことも知っていますreplace("[0-9]","") しかし、それは文字のために行うことができますか?

答えて

3

あなたは以下のような関数を作成することができます

String finalString = replaceMultiple("This is just a string folks", "This is", "folks"); 

あなたがしている複数の文字列を渡すことができます最初のパラメータの後に置き換えます。

+0

ありがとうございます。あなたは、この仕事のために、おそらく「パターン」を介して解決策があると思いますか? – BVtp

+0

あなたのパターンは多少曖昧ですので、おそらくそうではありません。これを行うには正規表現を渡すことができますが、パターンマッチングには注意が必要です – Draken

+0

ありがとう。 最後の質問、もし私が単語 "notbe"を持っていれば、例えば。私はすべての "not"接頭辞を削除して、 "notbe"が "be"になるようにしたいと思います。どのように達成できるのか考えていますか? – BVtp

0

それはこのように動作します:

String replaceMultiple (String baseString, String ... replaceParts) { 
    for (String s : replaceParts) { 
     baseString = baseString.replaceAll(s, ""); 
    } 
    return baseString; 
} 

をし、それを呼び出すように::

String originalString = "This is just a string folks"; 
originalString = originalString.replace("This is", ""); 
originalString = originalString.replace("folks", ""); 
//originalString is now finalString 
+0

このソリューションはかなり明白です。私の質問より効率的な、あるいはよりエレガントな方法があるかどうかです。 原因多くの部分文字列を扱うため、将来的には簡単に追加することができます。 – BVtp

+0

ああ申し訳ありませんが...確かに...しかし、私はあなたのケースでどのように動作するかわかりません。 replaceAll( "[A-Za-z]"、 "") –

+0

を使用すると、置換するすべての部分文字列をいつでも作成することができ、将来的に拡大する必要がある場合に備えて簡単に追加できます。 – JammuPapa