Как я могу проверить, если пользователь вставляет более одного слова, пробела или специального символа?
в этом интерфейсе, как заставить пользователя вставлять только одно слово без пробела или специальный символ, так как я могу это сделать?
Как я могу проверить, если пользователь вставляет более одного слова, пробела или специального символа?
в этом интерфейсе, как заставить пользователя вставлять только одно слово без пробела или специальный символ, так как я могу это сделать?
Если у вас есть следующие настройки
раскладку .xml
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
MainActivity.java
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(textWatcher);
}
TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String text=editText.getText().toString();
String[] words=text.split("\\s+");
if(words.length>1){
editText.setError("Please donot enter more than a word!");
editText.setText(words[0]);
}
else{
Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(text);
boolean b = m.find();
if (b) {
editText.setError("Please donot enter any special character!");
}
}
}
}
Вы можете использовать Character.isWhitespace
что-то вроде этого:
public static boolean containSpace(final String userName){
if(userName != null){
for(int i = 0; i < userName.length(); i++){
if(Character.isWhitespace(userName.charAt(i))){
return true;
}
}
}
return false;
}
Используйте regular expression.
Предполагая, что вы только хотите, чтобы буквы и цифры, это выражение будет делать:
"[a-zA-Z0-9]+"
// same as above
"\\p{Alnum}+"
// full unicode support, e.g. accented letters like é, ô, and ñ
"(?U)\\p{Alnum}+"
код, чтобы проверить это:
if (value.matches("(?U)\\p{Alnum}+")) {
// value is good
} else {
// value is bad
}
Какие рамки вы используете? Вы уже создали остальную часть пользовательского интерфейса? –
Вы хотите обработать удаление пробелов и специальных символов или просто хотите ограничить доступ пользователя к пробелам и специальным символам? –
Я хочу, чтобы пользователь не вводил пробелы и специальные символы – user3233919