2017-10-24 14 views
2

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
+0

を動作するはずです私は答えを追加しましたが、私はあなたの質問を読み違えていました。期待される成果は? – notyou

+0

問題のある無効なエスケープシーケンスを削除するコード行。しかし、それは文字列から無効なエスケープシーケンスを取り除くための一般的なコードです。 – WaterBoy

+0

正規表現ではバックスラッシュも*エスケープシーケンスであるため、正規表現には2つのバックスラッシュが必要です。 'qumlsOutputAsJson = qumlsOutputAsJson.replaceAll(" [^ \\\\ x20 - \\\\ x7E] "、" ");' –

答えて

2

、すなわち"\\\\",""

あなただけreplaceを使用した場合、予想通り、あなたが

qumlsOutputAsJson = qumlsOutputAsJson.replaceAll("\\\\", ""); 
+0

それは働いた!どうもありがとうございます – WaterBoy

+0

よろしくお願いします。 – notyou

関連する問題