Java trim()方法无效 java trim()无法去除空格 Java去除中文空格 Java去除全角空格

本文介绍了在Java中使用String类的trim()方法去除字符串尾部空格时,遇到全角空格无效的问题。作者通过问题复现和解决方法的探讨,指出trim()只能去除半角空格,而全角空格(中文空格)需要使用Hutool或Spring的工具类来处理。提供了相关代码示例,并推荐了Hutool库的StrUtil.trim()和Spring的StringUtils.trimWhitespace()方法作为替代解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Java trim()方法无效 java trim()无法去除空格 Java去除中文空格 Java去除全角空格

一、概述

        1、在项目开发中,需要接入第三方业务平台数据,我方提供数据导入接口。上线平稳运行一算时间后,发现第三方平台导入的数据中,有出现尾部空格的情况。如:商品名称 ,为了避免这一情况,我们使用的 String 类的trim方法,发现在本地测试是可以去除空格的,而第三方接口导入数据的空格,是无法去除的,莫非 ...

 

        2、经过一番摸索,发现原来是第三方导入数据尾部的空格是 全角空格,而 trim方法只能去除半角空格,这也就是 trim方法去除空格无效的原因。

        3、全角空格:有的称呼为 中文空格 ; 半角空格:有的称呼为 英文空格。

二、问题复现

        1、以QQ拼音为例,打开设置 --- 按键 --- 全半角切换

 

        2、开启全角后,输入法内容是这样的:abcd 

        3、半角输入是这样的:abcd ,输入法,默认都是半角的。

 

三、解决

        1、可以使用 hutool的 StrUtil.trim()方法,去除 字符串中的全角空格;可以使用 spring提供的工具类 StringUtils.trimWhitespace() 去除 字符串中的全角空格。

        2、代码演示如下:

/**@Description: 全角 空格去除测试
 * @version v1.0
 * @author wu
 * @date 2022/6/9 14:48
 */
@Test
public void test2(){
    String sLeft = " 左全角空格";
    String sMid = " 两边 全角空格  ";
    String sRight = "右边全角空格  ";

    System.out.println("String工具类 left:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sLeft));
    System.out.println("String工具类 mid:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sMid));
    System.out.println("String工具类 right:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sRight));

    // 使用 hutool的 StrUtil

    System.out.println("Hutool StrUtil 工具类 left:"+StrUtil.trim(sLeft));
    System.out.println("Hutool StrUtil 工具类 mid:"+StrUtil.trim(sMid));
    System.out.println("Hutool StrUtil 工具类 right:"+StrUtil.trim(sRight));

}

 

/**@Description:Hutool StrUtil 去除普通半角空格
 * <br> 半角空格=英文空格; 全角空格=中文空格
 * @return
 * @version v1.0
 * @author wu
 * @date 2022/6/9 14:52
 */
@Test
public void  test3(){
    String sLeft = "  左半角  右全角  ";
    System.out.println("原始字符串:"+sLeft);

    System.out.println("hutool :"+StrUtil.trim(sLeft));
    System.out.println("StringUtil :"+StringUtils.trim(sLeft));
    System.out.println("Spring StringUtil :"+ org.springframework.util.StringUtils.trimWhitespace(sLeft));

    // 去掉 字符串中全部空格
    System.out.println(org.springframework.util.StringUtils.trimAllWhitespace(sLeft));

    sLeft = StrUtil.trim(sLeft);
    System.out.println("最终去除效果:"+sLeft);
}

四、总结

        1、java的String类中的trim方法,只能去除 半角空格,遇到空格去不掉的情况,可能的全角空格,可以考虑使用hutool或者spring提供的工具类试试。

        2、hutool 的pom依赖是:

<dependency>
   <groupId>cn.hutool</groupId>
   <artifactId>hutool-all</artifactId>
   <version>5.7.18</version>
</dependency>

        3、Spring的 StringUtils位于:spring-core 模块下。

        4、注意:apache-commons-lang3 里的StringUtils工具类,无法去除全角空格,原因是:实际调用的是 String类的trim()方法。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值