关于java:删除String的最后两个字符

Delete the last two characters of the String

本问题已经有最佳答案,请猛点这里访问。

如何删除简单字符串的最后两个字符05

简单:

1
"apple car 05"

代码

1
2
3
4
String[] lineSplitted = line.split(":");
String stopName = lineSplitted[0];
String stop =   stopName.substring(0, stopName.length() - 1);
String stopEnd = stopName.substring(0, stop.length() - 1);

拆分前的原始行":"

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的基础,也可以删除最后一个空格。

1
2
3
4
 public static void main(String[] args) {
        String s ="apple car 05";
        System.out.println(s.substring(0, s.length() - 2));
    }

产量

1
apple car


使用string.substring(beginindex,endindex)

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

子字符串从指定的beginindex开始,并扩展到索引处的字符(endindex-1)


您可以使用以下方法删除最后一个n字符-

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


您也可以尝试以下代码进行异常处理。这里有一个方法removeLast(String s, int n)(它实际上是masud.m答案的一个修改版本)。你必须提供String和多少char你想从最后一个删除到这个removeLast(String s, int n)功能。如果必须从最后一个删除的char的数量大于给定的String长度,则它将抛出一个带有自定义消息的StringIndexOutOfBoundException。-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;

    }


您可以使用substring功能:

1
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


另一种解决方案是使用某种类型的regex

例如:

1
2
3
4
    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"


这几乎是正确的,只需将最后一行更改为:

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

您可以替换最后两行;

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