0

有効な文字と無効な文字を含む文字配列を受け取りました。有効な文字のみを取得する必要があります。これどうやってするの ?

char[]ch = str.toCharacterArray();
for(int i=0;i<ch.length.i++){
    if(!Character.isLetter(ch[i]))
         system.out.println("not valid");
    else  
        system.out.println("valid");
}

文字配列内のすべての有効な文字と無効な文字が無効になるため、上記のコードは機能しないと思います。

意味文字で、すべての英数字と特殊文字を期待しています

: サーバーから値を取得しているため、文字配列には有効な文字と無効な文字が含まれています。

4

2 に答える 2

1

次の方法を試してください:

// assume input is not too large string
public static String extractPrintableChars(final String input) {
    String out = input;
    if(input != null) {
        char[] charArr = input.toCharArray();
        StringBuilder sb = new StringBuilder();  
        for (char ch : charArr) {
            if(Character.isDefined(ch) && !Character.isISOControl(ch)) {
                sb.append(ch);
            }
        }
        out = sb.toString();
    }
    return out;
}
于 2013-01-30T09:09:58.633 に答える
0

Javaで利用可能なMatcherクラスを調べてください。最大キャップができるまで、すべてのキャラクターをループするのは賢明ではないと思います。

/[^0-9]+/g, '' 

上記の正規表現を使用すると、数値以外のすべての文字が消去されます。必要に応じて変更してください。

よろしくプニス

于 2013-01-30T08:32:20.980 に答える