行业资讯 2025年08月6日
0 收藏 0 点赞 892 浏览 1582 个字
摘要 :

文章目录 1.使用String.substring() 2. 使用StringUtils.chop() 3. 如果 Char 值匹配则删除最后一个字符 4.结论 1.使用String.substring() 这是最直接的方法。substrin……




1.使用String.substring()

这是最直接的方法。substring()方法返回开始和结束索引之间的子字符串

请注意,此方法不会检查空字符串。它也不会检查字符串的长度,因此如果我们传递一个空字符串,可能会引发IndexOutOfBoundsException(索引越界异常)。最好编写我们自己的方法来处理这两种情况。请随意自定义该方法并处理更多情况,比如非可打印字符。

public static String removeLastChar(String s) {
  return (s == null || s.length() == 0)
      ? null
      : (s.substring(0, s.length() - 1));
}

现在我们可以将此方法用于任何类型的String。

newStr = removeLastChar(null);        //returns null
newStr = removeLastChar(\"\");            //returns null
newStr = removeLastChar(\"a\");            //returns \"\" empty string
newStr = removeLastChar(\"abcd\");           //returns \"abc\"

2. 使用StringUtils.chop()

StringUtils类是Apache Commons Lang库的一部分,因此如果尚未添加,请添加它。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

StringUtils.chop ()返回一个新字符串,其最后一个字符已被删除。这种技术是不安全的,并且也可以处理空字符串。

另请注意,如果字符串以 结尾\\r\\n,则会删除它们。

newStr = StringUtils.chop(null);        //returns null
newStr = StringUtils.chop(\"\");            //returns \"\" empty string
newStr = StringUtils.chop(\"a\");            //returns \"\" empty string
newStr = StringUtils.chop(\"abcd\");    //returns \"abc\"

3. 如果 Char 值匹配则删除最后一个字符

在某些情况下,我们只想在最后一个字符匹配或不匹配任何特定字符时删除它。我们可以使用 Guava 的CharMatcher类来实现它。

如果还没有将Guava包含到项目中。

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.1-jre</version>
</dependency>

如果字符串的最后一个字符与给定条件匹配,请按如下方式使用CharMatcher类来删除它。

String string = \"abcdE\";
String newStr = CharMatcher.is(\'E\').trimTrailingFrom(s);

我们也可以使用CharMatcher来删除破坏的空格。

String newStr = CharMatcher.breakingWhitespace().trimTrailingFrom(s);

4.结论

在这个简短的 Java 教程中,我们学习了一些从字符串中删除最后一个字符的技术,可以使用索引,也可以仅使用匹配条件。我们看到了这些方法如何处理null和空值。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9237.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

986
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

463
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

347
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

455
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

516
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

831
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号