Подтвердить что ты не робот

Удалить последние два символа строки

Как удалить два последних символа 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
4b9b3361

Ответ 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

Ответ 2

Используйте String.substring(beginIndex, endIndex)

str.substring(0, str.length() - 2);

Подстрока начинается с указанного beginIndex и продолжается до символа в индексе (endIndex - 1)

Ответ 3

Вы можете использовать следующий метод для удаления последнего символа n -

public String removeLast(String s, int n) {
    if (null != s && !s.isEmpty()) {
        s = s.substring(0, s.length()-n);
    }
    return s;
}

Ответ 4

Вы можете использовать функцию 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

Ответ 5

Это было почти правильно, просто измените свою последнюю строку следующим образом:

String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.

ИЛИ

вы можете заменить две последние строки;

String stopEnd =   stopName.substring(0, stopName.length() - 2);

Ответ 6

Альтернативным решением было бы использовать какой-то 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"

Ответ 7

Вы также можете попробовать следующий код с обработкой исключений. Здесь у вас есть метод 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;

    }