Ответ 1
Вычесть -2
или -3
базу для удаления последнего пробела.
public static void main(String[] args) {
String s = "apple car 05";
System.out.println(s.substring(0, s.length() - 2));
}
Выход
apple car
Как удалить два последних символа 05
простой строки?
Простой:
"apple car 05"
код
String[] lineSplitted = line.split(":");
String stopName = lineSplitted[0];
String stop = stopName.substring(0, stopName.length() - 1);
String stopEnd = stopName.substring(0, stop.length() - 1);
оригинальная строка перед расщеплением ":"
apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16
Вычесть -2
или -3
базу для удаления последнего пробела.
public static void main(String[] args) {
String s = "apple car 05";
System.out.println(s.substring(0, s.length() - 2));
}
Выход
apple car
Используйте String.substring(beginIndex, endIndex)
str.substring(0, str.length() - 2);
Подстрока начинается с указанного beginIndex и продолжается до символа в индексе (endIndex - 1)
Вы можете использовать следующий метод для удаления последнего символа n
-
public String removeLast(String s, int n) {
if (null != s && !s.isEmpty()) {
s = s.substring(0, s.length()-n);
}
return s;
}
Вы можете использовать функцию substring
:
s.substring(0,s.length() - 2));
С первым 0
вы говорите substring
, что он должен начинаться с первого символа вашей строки и с s.length() - 2
, что он должен закончить 2 символа до окончания строки.
Для получения дополнительной информации о функции substring
вы можете увидеть здесь:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
Это было почти правильно, просто измените свою последнюю строку следующим образом:
String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.
ИЛИ
вы можете заменить две последние строки;
String stopEnd = stopName.substring(0, stopName.length() - 2);
Альтернативным решением было бы использовать какой-то regex
:
например:
String s = "apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16";
String results= s.replaceAll("[0-9]", "").replaceAll(" :", ""); //first removing all the numbers then remove space followed by :
System.out.println(results); // output 9
System.out.println(results.length());// output "apple car"
Вы также можете попробовать следующий код с обработкой исключений. Здесь у вас есть метод removeLast(String s, int n)
(это фактически модифицированная версия ответа masud.m). Вы должны указать String
и сколько char
, которые вы хотите удалить из последней функции removeLast(String s, int n)
. Если число char
должно быть удалено из последнего больше, чем заданная длина String
, то он выдает StringIndexOutOfBoundException
с настраиваемым сообщением -
public String removeLast(String s, int n) throws StringIndexOutOfBoundsException{
int strLength = s.length();
if(n>strLength){
throw new StringIndexOutOfBoundsException("Number of character to remove from end is greater than the length of the string");
}
else if(null!=s && !s.isEmpty()){
s = s.substring(0, s.length()-n);
}
return s;
}