Java两种方法去除字符串末尾的数字

问题:如何去除这个字符串中末尾的数字:sdf12.432fdsf.gfdf32 ?

这个问题的解决关键是要先把字符串进行反转操作

基本变量

/**
 * 匹配数字结尾的正则表达式
 */
private static final String NUM_SUFFIX_REGEX = "^.*\\d$";
/**
 * 匹配纯数字片段的正则表达式
 */
private static final String NUM_REGEX = "\\d+";

/**
 * 匹配数字开头的正则表达式
 */
private static Pattern NUM_PREFIX_PATTERN = Pattern.compile("(^\\d+)(.*)$");

方法一:


public static String removeNumSuffix1(String source) {
    if (StringUtils.isBlank(source) || !source.matches(NUM_SUFFIX_REGEX)) {
        return source;
    }

    String reverse = StringUtils.reverse(source);
    reverse = reverse.replaceFirst(NUM_REGEX, StringUtils.EMPTY);
    return StringUtils.reverse(reverse);
}

方法二:


public static String removeNumSuffix(String source) {
    if (StringUtils.isBlank(source) || !source.matches(NUM_SUFFIX_REGEX)) {
        return source;
    }

    String reverse = StringUtils.reverse(source);

    Matcher matcher = NUM_PREFIX_PATTERN.matcher(reverse);
    if (!matcher.find()) {
        return source;
    }
    String numStr = matcher.group(1);
    reverse = reverse.replaceFirst(numStr, StringUtils.EMPTY);

    return StringUtils.reverse(reverse);
}

经过测试,两个方法的耗时接近,方法二的耗时略微少一些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 您可以使用 String 类的 substring 方法实现。具体操作如下: String str = "Hello World!"; String newStr = str.substring(0, str.length() - 1); //newStr 的值为 "Hello World" 这样, newStr 就是去掉了最后一个字符的字符串了。 ### 回答2: 要去掉一个Java字符串的最后一位,可以使用String类的substring()方法来实现。 假设我们有一个字符串变量str,它的值为"Hello World",我们想要去掉最后一个字符,即去掉最后的"d"。我们可以使用substring()方法,指定起始索引为0,结束索引为str.length()-1。具体代码如下: ``` String str = "Hello World"; String newStr = str.substring(0, str.length() - 1); ``` 在这段代码中,str.substring(0, str.length() - 1)表示截取字符串str从索引0到str.length() - 1的部分,也就是去掉最后一个字符。将结果赋值给newStr变量。 运行以上代码后,newStr的值就是"Hello Worl",最后一个字符"d"被成功去掉了。 需要注意的是,substring()方法返回的是一个新的字符串,原始字符串并没有被改变。如果你需要修改原始字符串,可以直接给str赋值为newStr,即str = newStr。这样str变量的值就被更新为去掉最后一个字符后的字符串。 希望以上解答对你有帮助!如果你还有其他问题,请随时向我提问。 ### 回答3: 要去掉Java字符串中的最后一个字符,可以使用String类的substring方法。这个方法允许我们指定一个起始索引和一个结束索引来获取字符串的子串。我们可以通过将起始索引设置为0,将结束索引设置为字符串的长度减去1来获得一个不包含最后一个字符的子串。具体代码如下: ```java String originalString = "Hello World!"; String modifiedString = originalString.substring(0, originalString.length() - 1); System.out.println(modifiedString); ``` 在这个例子中,原始字符串为"Hello World!"。我们调用substring方法,指定起始索引为0,结束索引为originalString的长度减去1。然后,将结果赋值给一个新的字符串变量modifiedString。最后,我们打印出modifiedString,它将是"Hello World",不包含最后一个感叹号。 需要注意的是,String类是不可变的,所以substring方法并不会修改原始字符串,而是创建一个新的字符串。如果想要改变原始字符串对象本身,可以使用StringBuilder或StringBuffer类来进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值