「http://developer.android.com/reference/java/util/regex/Pattern.html」に表示されるべきではないと記載されていても、正規表現が常にfalseを返すという問題があります。
あらゆる種類の特殊文字「&$ @ R @」を入力していますが、b/b2は両方ともlogcatでfalseを返しています。編集テキストに入力している文字列は、入力した文字列とまったく同じようにlogcatに表示されます。なぜそれが英数字と一致しないのかについて誰かが考えていますか?
コード:
EditText et1 = (EditText) findViewById(R.id.editText1);
String et1Text = et1.getText().toString();
int et1Length = et1.getText().toString().length();
EditText et2 = (EditText) findViewById(R.id.editText2);
String et2Text = et2.getText().toString();
int et2Length = et2.getText().toString().length();
Pattern p = Pattern.compile("\\W");
Log.d(TAG,et1Text);
Matcher m = p.matcher(et1Text);
boolean b = m.matches();
if (b == true){
Log.d(TAG,"True");
}
else {
Log.d(TAG,"False");
}
Log.d(TAG,et2Text);
Matcher m2 = p.matcher(et2Text);
boolean b2 = m2.matches();
if (b2 == true){
Log.d(TAG,"True");
}
else {
Log.d(TAG,"False");
}
if (et1Length < 4 | et1Length > 15 | et2Length < 4 | et2Length > 15){
Log.d(TAG,"Length dialog");
dialog(1);
}
if (b==true | b2==true){
Log.d(TAG,"Special char dialog");
dialog(1);
}