Удаление пробелов в конце строки в Java [дубликат]
Возможные Дубликаты:
полоса ведущих и конечных пробелов из строки Java
когда я импортирую данные в приложение, мне нужно избавиться от пробелов в конце определенных строк, но не в начале, поэтому я не могу использовать trim()... Я установил метод:
public static String quitarEspaciosFinal(String cadena) {
String[] trozos = cadena.split(" ");
String ultimoTrozo = trozos[trozos.length-1];
return cadena.substring(0,cadena.lastIndexOf(ultimoTrozo.charAt(ultimoTrozo.length()-1))+1);
}
где cadena-строка, которую я должен преобразовать...
Итак, если cadena = "1234", этот метод вернется " 1234"...
Я хотел бы знать, если есть более эффективный способ сделать это...
5 ответов
можно использовать replaceAll()
метод в строке с регулярным выражением \s+$
:
return cadena.replaceAll("\s+$", "");
если вы хотите удалить только реальные пробелы (не таблицы и не новые строки), замените \s
пробел в регулярном выражении.
String s = " this has spaces at the beginning and at the end ";
String result = s.replaceAll("\s+$", "");
public static String replaceAtTheEnd(String input){
input = input.replaceAll("\s+$", "");
return input;
}
Я бы сделал так:
public static String trimEnd(String s)
{
if ( s == null || s.length() == 0 )
return s;
int i = s.length();
while ( i > 0 && Character.isWhitespace(s.charAt(i - 1)) )
i--;
if ( i == s.length() )
return s;
else
return s.substring(0, i);
}
это более подробно, чем использование регулярного выражения, но, вероятно, будет более эффективным.