Как удалить последний символ из строки? - PullRequest
418 голосов
/ 16 сентября 2011

Я хочу удалить последний символ из строки.Я попытался сделать это:

public String method(String str) {
    if (str.charAt(str.length()-1)=='x'){
        str = str.replace(str.substring(str.length()-1), "");
        return str;
    } else{
        return str;
    }
}

Получение длины строки - 1 и замена последней буквы ничем (удаление ее), но каждый раз, когда я запускаю программу, она удаляет средние буквы, которыетак же, как и последняя буква.

Например, слово «поклонник»;после запуска метода я получаю "восхищение".Я хочу вернуть слово восхищаться.

Ответы [ 26 ]

3 голосов
/ 13 декабря 2013
public String removeLastChar(String s) {
    if (!Util.isEmpty(s)) {
        s = s.substring(0, s.length()-1);
    }
    return s;
}
3 голосов
/ 10 июля 2018
 // creating StringBuilder
 StringBuilder builder = new StringBuilder(requestString);
 // removing last character from String
 builder.deleteCharAt(requestString.length() - 1);
3 голосов
/ 10 июля 2015

Посмотрите на класс StringBuilder:

    StringBuilder sb=new StringBuilder("toto,");
    System.out.println(sb.deleteCharAt(sb.length()-1));//display "toto"
2 голосов
/ 21 августа 2014

Однострочный ответ (просто забавная альтернатива - не пытайтесь повторить это дома, и отличные ответы уже даны):

public String removeLastChar(String s){return (s != null && s.length() != 0) ? s.substring(0, s.length() - 1): s;}
2 голосов
/ 02 декабря 2016

Почему бы не использовать escape-последовательность ...!

System.out.println(str + '\b');

Жизнь теперь стала намного проще.XD!~ Читаемый однострочный

2 голосов
/ 21 апреля 2015
// Remove n last characters  
// System.out.println(removeLast("Hello!!!333",3));

public String removeLast(String mes, int n) {
    return mes != null && !mes.isEmpty() && mes.length()>n
         ? mes.substring(0, mes.length()-n): mes;
}

// Leave substring before character/string  
// System.out.println(leaveBeforeChar("Hello!!!123", "1"));

public String leaveBeforeChar(String mes, String last) {
    return mes != null && !mes.isEmpty() && mes.lastIndexOf(last)!=-1
         ? mes.substring(0, mes.lastIndexOf(last)): mes;
}
2 голосов
/ 24 января 2019

В Kotlin вы можете использовать метод dropLast () класса string.Он удалит указанное число из строки, вернет новую строку

var string1 = "Some Text"
string1 = string1.dropLast(1)
1 голос
/ 30 января 2018

Java 8

import java.util.Optional;

public class Test
{
  public static void main(String[] args) throws InterruptedException
  {
    System.out.println(removeLastChar("test-abc"));
  }

  public static String removeLastChar(String s) {
    return Optional.ofNullable(s)
      .filter(str -> str.length() != 0)
      .map(str -> str.substring(0, str.length() - 1))
      .orElse(s);
    }
}

Вывод: test-ab

1 голос
/ 22 октября 2015
 "String name" = "String name".substring(0, ("String name".length() - 1));

Я использую это в своем коде, это легко и просто.он работает только тогда, когда строка> 0. Я подключил его к кнопке и внутри следующего if выражение

if ("String name".length() > 0) {
    "String name" = "String name".substring(0, ("String name".length() - 1));
}
0 голосов
/ 28 июня 2018

Мы можем использовать подстроку. Вот пример,

public class RemoveStringChar 
{
    public static void main(String[] args) 
    {   
        String strGiven = "Java";
        System.out.println("Before removing string character - " + strGiven);
        System.out.println("After removing string character - " + removeCharacter(strGiven, 3));
    }

    public static String removeCharacter(String strRemove, int position)
    {   
        return strRemove.substring(0, position) + strRemove.substring(position + 1);    
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...