のいずれかの種類には適用されません。String.replaceAllだから私は何を持っていることは、文字列から、大文字と小文字と数字以外のすべての文字を削除する必要があり、この単純な方法であり、文字
public static String toSimple(String arg) //redurziert einen String auf Buchstaben und ganze Zahlen
{
String string = arg;
int i = 0;
while (i < string.length())
{
if (((int)string.charAt(i) >= 48 && (int)string.charAt(i) <= 57)||((int)string.charAt(i) >= 65 && (int)string.charAt(i) <= 90)||((int)string.charAt(i) >= 97 && (int)string.charAt(i) <= 121))
i+=1;
else
{
int a = string.length();
string = string.replaceAll(""+string.charAt(i), "");
if (!(string.length() < a)) //Just in case
{
i+=1;
}
}
問題が到達し、文字を与えられたものの、いくつかのケースでstring.replaceAll
は何も変わらないということです。私はデバッガでそれをチェックし、明らかなエラーや例外を見つけることができませんでした。私は全体のASCIIテーブルをチェックしなかった、私は問題が '$' 'のために発生することを知っている?と '。' これを解決する方法はありますか?
注 - そう '(int型)string.charAt(I)> = 48'あなたは何を意味するか、それはより多くの明白になりれ、0''' string.charAt(I)> =」のように記述することができます。 ( 'int'へのキャストはどんな場合でも必要ありません)。 –
これは文字列から文字を削除するにはかなり恐ろしい方法です。そして、それは動作しません。文字列 ",,, + a"を試してください。 "+"は削除されません。通常は、StringBuilderの中で、新しいStringを構築するだろうが、あなたはこのようにそれをやっていた場合でも、あなたは二回、文字の前後の文字列を取得するために 'String.substring'を使用すると思います。 –