json文字列の中に無効なエスケープシーケンスがあります。シーケンスです:Java文字列から無効なエスケープシーケンスを削除する
「nグラム」:「の\ xa0cancer予防」
私は空の文字列に置き換えることにより、完全にこのシーケンスを削除しようとしているが、しかし、それぞれの試みは失敗します。私は、次の方法を試してみました:
qumlsOutputAsJson = qumlsOutputAsJson.replaceAll("[^\\x20-\\x7E]", "");
と
qumlsOutputAsJson = qumlsOutputAsJson.replaceAll("\\.", "");
とさえルーチン:
private String removeNonAscii(String text){
String asciiText = "";
for (char aChar: text.toCharArray()){
if((int)aChar<=0x7F)
asciiText = asciiText + Character.toString(aChar);
}
return asciiText;
}
すべてが失敗しています。
明らかな方法があると確信していますが、いずれの方向も高く評価されています。
あなたはバックスラッシュをエスケープする必要がreplaceAll
で
を動作するはずです私は答えを追加しましたが、私はあなたの質問を読み違えていました。期待される成果は? – notyou
問題のある無効なエスケープシーケンスを削除するコード行。しかし、それは文字列から無効なエスケープシーケンスを取り除くための一般的なコードです。 – WaterBoy
正規表現ではバックスラッシュも*エスケープシーケンスであるため、正規表現には2つのバックスラッシュが必要です。 'qumlsOutputAsJson = qumlsOutputAsJson.replaceAll(" [^ \\\\ x20 - \\\\ x7E] "、" ");' –