メソッドにバイトを受け取り、シリアルで送信したいのですが、有効なバイト(つまり、a-zA-Z0-9 "!£$%^&*()-_ = +)のみを送信したいのです。そのように、スペース、新しい行など。アクセントや�のような文字を、任意の順序で何度でも除外したいだけです。
仕事をしているすべてのキャラクターを含めて、このようなものでしょうか|
?
^[a-z|A-Z|0-9|\\s|-<other characters>]*
または、正しい表現は何でしょうか?
したがって、文字列に「exit����」が含まれている場合は、「exit」のみを送信し、無効な文字は送信せず、他のすべてを送信します。
public void write(byte[] bytes, int offset, int count) {
String str;
try {
str = new String(bytes, "ASCII");
Log.d(TAG, "data received in write: " +str );
//^[a-z|A-Z|0-9|\s|-]*
//test here, call next line on any character that is valid
GraphicsTerminalActivity.sendOverSerial(str.getBytes("ASCII"));
} catch (UnsupportedEncodingException e) {
Log.d(TAG, "exception" );
e.printStackTrace();
}
// appendToEmulator(bytes, 0, bytes.length);
}
編集:私はASCII文字の範囲である[^ \ x00- \ x7F]を試しましたが、それでも�記号は通り抜けます、奇妙です。