У меня проблемы с регулярным выражением, которое всегда возвращает false, хотя
"http://developer.android.com/reference/java/util/regex/Pattern.html" заявляет, что не должно.
Я ввожу все виды специальных символов: "& $ @ R @" и b / b2 оба возвращают false в logcat. Строка, которую я помещаю в текст редактирования, даже отображается в 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);
}