javaを使用しています。特定の文字列の出現を他の文字と置き換えようとしています。それはほとんどの場合に機能します。しかし、特定の文字列が指定されたコンテンツに置き換えられないことがあります。 String.replaceFirstは、予期される文字列を時々置き換えません。
私は与えられたコンテンツ内の特定の文字列がindexOfメソッドを使用していることを検索し
、私は正確にその文字列のインデックスを取得することができます。しかし、私はその文字列を置き換えるreplaceFirstメソッドを使用すると、操作は失敗して終了します。次に、エスケープ文字からエスケープするために、次のように置き換えようとしました。
cont = Pattern.compile(str, Pattern.LITERAL).matcher(cont)
.replaceFirst(Matcher.quoteReplacement("replace string"))
は、私たちは動物ください 訪問このサイト http://www.example.net/animals/cat_345_456.JPG の絵のために例として、コンテンツの下に
を取ることができます。この詳細については、 http://www.moredetails.com/example/imgs/nwr_1453446_83223_429054_1603367_42.PNG?Id=1450686&lid=423454&idp=4402767&ps=4563223&circle=4&type=2&zw=264&zh=150&v=5&url=NA&uid= もご覧ください。訪問してくれてありがとう。
上記の内容では、最初にstrにhttp://www.example.net/animals/cat_345_456.JPGという値を割り当ててから、最初のメソッドを置き換えます。
この場合、予想される文字列が正しく置き換えられます。
は、それから、今、私はhttp://www.moredetails.com/example/imgs/nwr_1453446_83223_429054_1603367_42.PNG?Id=1450686&lid=423454&idp=4402767&ps=4563223&circle=4&type=2&zw=264&zh=150&v=5&url=NA&uid=の値とSTRを割り当て、私は最初の方法を交換呼び出します。
今回は置き換えられません。しかし、私はString.indexofメソッドを使用すると、その文字列のインデックス番号が正しく与えられます。
何か不足していますか?
助けてください。前もって感謝します。
短いが完全な例では、これは*ずっと*に簡単であなたを助けることになるだろう。 –
'Pattern.LITERAL'の代わりに' quoteReplacement(str) 'を実行するとどうなりますか? – OrangeDog
あなたのサンプルは私のために働く。両方とも、第1と第2の交換。どのJavaバージョンを使用しますか? – morja