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

文章目录 1.使用Apache Commons StringUtils 1.1. Maven依赖 1.2. 用于移除额外空格的Java程序 2.使用正则表达式 3.使用StringBuffer 学习如何在Java中Java中将字符……




  • 1.使用Apache Commons StringUtils
    • 1.1. Maven依赖
    • 1.2. 用于移除额外空格的Java程序
  • 2.使用正则表达式
  • 3.使用StringBuffer

学习如何在Java中Java中将字符串多个空格替换单个空格,即从字符串中删除单词之间的额外空白字符。给出3个示例,使用正则表达式、StringBuffer和Apache Commons StringUtils类来将多个空格替换为单个空格。

1.使用Apache Commons StringUtils

这种方法使用StringUtils.normalizeSpace()是可读性最好的,应该是删除单词之间不需要的空白字符的首选方式。

此函数以两个步骤规范化带有空格的参数字符串,即 –

  • 使用trim(String)来删除前导和尾随空格
  • 然后 用单个空格替换空格字符序列

1.1. Maven依赖

从Maven仓库添加commons-lang3的最新版本。

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

1.2. 用于移除额外空格的Java程序

//单词之间不均匀的空格
String blogName = \"welcome to   pan    zi  ye   .         com\";
String nameWithProperSpacing = StringUtils.normalizeSpace( blogName );
System.out.println( nameWithProperSpacing );

程序输出:

welcome to pan zi ye . com

2.使用正则表达式

使用正则表达式,将2个或更多的空格和不可见字符替换为一个空格也是一个不错的解决方案。

我们使用的正则表达式模式是 \"\\s+\"

  • \\s 匹配空格、制表符、换行符、回车符、换页符或垂直制表符。
  • +表示一个或多个匹配。

请注意,此方法不会修剪字符串。这意味着如果原始字符串在开头或结尾有这样的空格,那么在字符串的开头或结尾可能会有一个单独的空格。

// 单词之间不均匀的空格
String blogName = \"welcome to   pan    zi  ye   .         com\";
String nameWithProperSpacing = blogName.replaceAll(\"\\\\s+\", \" \");
System.out.println( nameWithProperSpacing );

程序输出:

welcome to pan zi ye . com

3.使用StringBuffer

StringBuffer也可以帮助我们消除不均匀间隔的字符串。这是一种完全程序化的方法,可能不适用于大字符串。

请注意,类似于正则表达式示例,这种方法也可能会留下前导和尾随的空格。因此,在删除参数字符串中单词之间的额外空格后,请不要忘记调用trim()修剪字符串以去掉头尾空格。

// 单词之间不均匀的空格
String blogName = \"welcome to   pan    zi  ye   .         com\";
StringTokenizer st = new StringTokenizer(blogName, \" \");
StringBuffer sb = new StringBuffer();
while(st.hasMoreElements())
{
    sb.append(st.nextElement()).append(\" \");
}
String nameWithProperSpacing = sb.toString();
System.out.println( nameWithProperSpacing );
//去掉字符串的首尾空格
nameWithProperSpacing = nameWithProperSpacing.trim();
System.out.println( nameWithProperSpacing );

程序输出:

welcome to pan zi ye . com

微信扫一扫

支付宝扫一扫

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

管理员

相关推荐
2025-08-06

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

988
2025-08-06

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

465
2025-08-06

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

348
2025-08-06

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

456
2025-08-06

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

517
2025-08-06

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

832
发表评论
暂无评论

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

助力内容变现

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

点击联系客服

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

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号