2016-10-05 17 views
-2

私はString.replaceAllを使用しようとしているが、私はエラーを取得しています:ここでJavaエラーでReplaceAllを使用している間( "+ - "、 " - ")

は私のコードです:

public static String signSimplify (String str) { 
    String strr = str.replaceAll("--", "+"); 
    String strr2 = strr.replaceAll("-+", "-"); 
    String strr3 = strr2.replaceAll("+-", "-"); 
    return strr3; 
} 

そして、 、実行されたときに、私は次のエラーを取得:( - 、「 - 」「+」)

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 
+- 
^ 
    at java.util.regex.Pattern.error(Unknown Source) 
    at java.util.regex.Pattern.sequence(Unknown Source) 
    at java.util.regex.Pattern.expr(Unknown Source) 
    at java.util.regex.Pattern.compile(Unknown Source) 
    at java.util.regex.Pattern.<init>(Unknown Source) 
    at java.util.regex.Pattern.compile(Unknown Source) 
    at java.lang.String.replaceAll(Unknown Source) 
    at fr.genius.main.Main.signSimplify(Main.java:108) 
    at fr.genius.main.Main.calcTrinome(Main.java:88) 
    at fr.genius.main.Main.main(Main.java:69)` 

を私がでReplaceAllを使用することはできませんなぜ私は理解していないが、私は+とすることができたときに - 反転しています。

+4

あなたは 'replaceAll'メソッドのドキュメントを読もうとしましたか? – njzk2

+1

これは正規表現です。 '+'は正規表現のメタキャラであり、それが動作するためには何か「前」が必要です。 '+'は '-'を変更しているので動作しますが、' + 'は変更されません。 –

+0

StackOverflowを使用して簡単にGoogleを使用して回答を見つけることができる質問をする場合は、少なくとも以下の回答を正解として選択します。トム・Nの答えが最善の答えなので、決定できなければ彼の答えを選んでください。 – searchengine27

答えて

2

したいか、正規表現を必要としない場合は、だけではなく、replaceAll()replace()を使用して、あなたが期待されるように、それは動作します。

+0

でも、すべての+ - ?それとも正義?ヒントありがとう! – SEVENTH

+0

普通の文字列を別の文字列に置き換えます。 '+'と '--'の両方を置き換えることを考えているなら、いくつかの可能な方法の1つで正規表現を修正する必要があります。あなたのように見えますが、正規表現は必要ありません。 – Kayaman

+0

@ SEVENTHはい、すべてのインスタンスを置き換えます。 – shmosel

0

以下の手法で代替使用:Javaで

String url="abc+-abc"; 
System.out.println(url.replaceAll("\\+-", "-")); 
+0

私は専門家ではありませんが、ご質問がnoobyとなった場合はごめんなさい、ありがとうございます:) – SEVENTH

+0

'-'文字をエスケープする必要はありません。 – searchengine27

1

でReplaceAllは、正規表現として交換するテキストを扱います。 +をエスケープする必要があります。

str.replaceAll("\\+-", "-") 
+0

私はすでにHTMLやPHPのためにそれを見てきましたが、私はそれを使用する方法を忘れていた、ありがとう! – SEVENTH

関連する問題