Удаление пробела из строки редактирования текста

#android #android-edittext

#Android #android-edittext

Вопрос:

В моем приложении для Android я получаю строку из текста редактирования и использую ее в качестве параметра для вызова веб-службы и извлечения данных JSON. Теперь метод, который я использую для получения строкового значения из текста редактирования, выглядит следующим образом :

 final EditText edittext = (EditText) findViewById(R.id.search);

String k = edittext.getText().toString();
  

Теперь обычно это работает нормально, но если текст в Edit Text содержит пробел, тогда мое приложение вылетает.

например. — если кто-то вводит «еда» в текстовом поле редактирования, то все в порядке, но если кто-то вводит «индийская еда», происходит сбой.

Как удалить пробелы и получить только строку?

Ответ №1:

Разве это не просто Java?

 String k = edittext.getText().toString().replace(" ", "");
  

Комментарии:

1. да, просто Java. Извините, это был немного глупый вопрос. Я мог бы просто погуглить это.

2. одинарная кавычка ('') приводит к ошибке.. Я использую двойные кавычки ("") , знак работает .. Например : String k = edittext.getText().toString().replace(" ", "");

Ответ №2:

попробуйте это…

 final EditText edittext = (EditText) findViewById(R.id.search);

String k = edittext.getText().toString();

String newData  = k.replaceAll(" ", " ");
  

и используйте «Новые данные»

Комментарии:

1. ваше решение кажется идеальным, но могу я спросить, почему ударение на «новом»

Ответ №3:

 String email=recEmail.getText().toString().trim();
String password=recPassword.getText().toString().trim();
  

В будущем я настоятельно рекомендую проверять строковые методы Java в API. Это спасательный круг для получения максимальной отдачи от вашей среды Java.

Ответ №4:

Вы можете легко удалить все пробелы, используя что-то вроде этого. Но вы столкнетесь с другой серьезной проблемой, если просто сделаете это. Например, если у вас есть входные

 String input1 = "aa bb cc"; // output aabbcc
String input2 = "a abbcc";  // output aabbcc
String input3 = "aabb cc";  // output aabbcc
  

Одним из решений будет исправить ваше приложение, чтобы оно принимало пробелы во входной строке, или использовать какой-либо другой литерал для замены пробелов. Если вы используете только буквенно-цифровые значения, вы делаете что-то вроде этого

 String input1 = "aa bb cc"; // aa_bb_cc
String input2 = "a abbcc";  //a_abbcc
String input3 = "aabb cc";  //aabb_cc
  

И в конце концов, если вы не заботитесь о потере информации, вы можете использовать любой подход, который вы хотите.