如何从字符串中删除最后一个字符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (103)

想从字符串中删除最后一个字符。我试过这样做:

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的长度,并将最后一个字母替换为空(删除),但是每次我运行程序时,它都会删除与最后一个字母相同的中间字母。

例如,这个词是“admirer”;运行该方法后,我得到了“ADMIE”。我希望它能够返回“admie”这个词。

提问于
用户回答回答于

replace将取代信件的所有实例。你所需要做的就是使用substring():

public String method(String str) {
    if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == 'x') {
        str = str.substring(0, str.length() - 1);
    }
    return str;
}
用户回答回答于

移除最后出现的“xxx”:

    System.out.println("aaa xxx aaa xxx ".replaceAll("xxx([^xxx]*)$", "$1"));

如果“xxx”是最后一个,则移除它的最后一次出现:

    System.out.println("aaa xxx aaa  ".replaceAll("xxx\\s*$", ""));

你可以在你想要的东西上替换‘xxx’,但是要小心特殊的字符。

用户回答回答于

就可读性而言,我认为这是最简洁的。

StringUtils.substring("string", 0, -1);

负面索引可以在Apache的StringUtils实用程序中使用。所有负数都是从字符串末尾的偏移量中处理的。

用户回答回答于
if (str.endsWith("x")) {
  return str.substring(0, str.length() - 1);
}
return str
用户回答回答于

用这个:

 if(string.endsWith("x")) {

    string= string.substring(0, string.length() - 1);
 }
用户回答回答于
用户回答回答于
public String removeLastChar(String s) {
    if (s == null || s.length() == 0) {
        return s;
    }
    return s.substring(0, s.length()-1);
}
用户回答回答于

查看ApacheCommonsStringUtils,它有一个名为removeEnd非常优雅。

例子:

StringUtils.removeEnd("string 1|string 2|string 3|", "|");

将导致:“字符串1字符串2字符串3”

用户回答回答于

因为我们是在讨论一个主题,所以我们也可以使用正则表达式

"aaabcd".replaceFirst(".$",""); //=> aaabc  
用户回答回答于

为什么不只是一条liner?

private static String removeLastChar(String str) {
    return str.substring(0, str.length() - 1);
}

代码

import java.util.*;
import java.lang.*;

public class Main {
    public static void main (String[] args) throws java.lang.Exception {
        String s1 = "Remove Last CharacterY";
        String s2 = "Remove Last Character2";
        System.out.println("After removing s1==" + removeLastChar(s1) + "==");
        System.out.println("After removing s2==" + removeLastChar(s2) + "==");

    }

    private static String removeLastChar(String str) {
        return str.substring(0, str.length() - 1);
    }
}

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    46 粉丝0 提问2 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券