#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
И в конце концов, если вы не заботитесь о потере информации, вы можете использовать любой подход, который вы хотите.