2016-08-06 5 views
-1

replace allを使用して問題が発生しました。置き換えられた単語の代わりにスペースが追加されます。簡単な例:Java - スペースを取得せずにreplaceAllを使用する

String str= "I like java"; 
str.replaceAll("java",""); 

が与える "私は(ここではスペースを)好き"

String str= "I like java"; 
str.replaceAll("like",""); 

は、 "I(ここでは2つのスペース)は、Java"

String str= "I like java"; 
str.replaceAll("I",""); 

は(」2つのスペースを与えていますここをクリック)javaのように "

replaceAllを使用するだけで、この領域を切り捨てることはできますか?それは、置き換え引数( "")と関係があるでしょうか?

注:文字列内に見つかった場合は削除する必要がある単語がいくつかありますが、その単語がどこにあるか分かりません。

おかげ

+2

'' java ''と '' '' ''が好きすぎるので、もっと特別なやり方を待ってください。D。 Btwでは 'replaceAll'ではなく' replace'を使うべきです。 – Tom

+0

あなたはスペース+単語ではなく、単語を置き換えることを厭わない、それは期待通りに働いている – ravthiru

+0

@Tom余分なスペースを取り除く方法はない? – Niminim

答えて

1

は、Javaを「「ではなく交換するよりも、あなたが最初にあなたの文字列で持っていた二つのスペースを残して、」」と「Javaの」交換している(スペースに注意)。しかし、これは働くだろう...

String str= "I like java"; 
str = str.replaceAll(" java",""); 

は、あなたが最初のスペースを優先して、一つだけ、その単語の周りのスペースを置き換えるために探しているなら、あなたがこれを行う可能性があります...

String regex = " like|like "; 
System.out.println("I like java".replaceAll(regex,"")); 
System.out.println("like java".replaceAll(regex,"")); 
+0

それはその特定の問題を解決しますが、私が懇願で "私"を交換したいのですか?覚えておいてください - 置き換えられた単語がどこに見つかるのか分かりません。私は一般的な解決策が必要です。何か案が ? – Niminim

+1

私はあなたの質問に答えました。あなたは "一般的な解決策"を望むよりも具体的にする必要があります。 –

+0

そう、私はそれを訂正したのです。何か案が ? – Niminim

関連する問題