Привет Я хочу, чтобы соответствовать первое имя посимвольно, но это сделать ошибку, это мой код:регулярное выражение не работает в андроида
int length = input.length();
for (int i = 0; i < length; i++){
char ch = input.charAt(i);
String regex ="^[_\\s]||[آ-ی]$";
Matcher matcher = Pattern.compile(regex).matcher(ch);
и это мой полный код:
public class MainActivity extends AppCompatActivity {
EditText editText;
Button button;
String input;
String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.edt);
button = (Button)findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@SuppressLint("ShowToast")
@Override
public void onClick(View v) {
input = editText.getText().toString();
check_reg();
}
});
}
public boolean check_reg(){
int length = input.length();
for (int i = 0; i < length; i++){
char ch = input.charAt(i);
String regex ="^[_\\s]||[آ-ی]$";
Matcher matcher = Pattern.compile(regex).matcher(ch);
if (matcher.find())
{
result = matcher.group();
Toast.makeText(MainActivity.this, "match", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.this, "no match", Toast.LENGTH_SHORT).show();
}
}
return false;
}
}
и это образ моей проблемы:
Я предполагаю, что его java вещь? –
Из того, что я прочитал в [docs] (https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html), 'pattern.matcher()' метод принимает только типы 'String' и' CharSequence' ... не 'char' –
Зачем проверять символ по символу? Вы можете использовать '^ [_ \\ s آ-ی] + $', чтобы проверить его как целую строку. 'input.matches (" [_ \\ s آ-ی] + ")' –