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()方法。

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐