JAVA去空格,注意事项

本文探讨了在Java中处理特殊空格字符 的问题,该字符不能通过常规方法如trim()或replaceAll()去除。文章提供了一个解决方案,通过将 转换为UTF-8编码下的等效字节序列,再使用replaceAll()方法成功移除这些特殊空格。

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

情况:JAVA字符串中,显示有空格,正常可以通过正则表达式,或者String.trim()方法去掉,但是有些是不可以的

原因:空格的显示,用的ASCII编码是不一样导致,如果是用空格,TAB键,或者换行符等,都可以用常规方法去除,但是我在前端页面中,抓到的了 (牛逼空格),没错就是它,然后正则和String.trim(),replaceAll("//s*","")等都失效了。

解决:

 

public class TestSpace {
	
	public static void main(String[] args) throws Exception {
        //a中的空格,显示为空格,其实是多个 组成的,所以正常方式,无法替换空格
		String a = "18699104747     ";
		String b = "12345678977     ";
		
		System.out.println(a.length());
		System.out.println(b.length());
		
		//不成功
		//a = a.replaceAll("\\s*", "");
		b = b.replaceAll("\\s*", "");
		System.out.println("a:" + a + "----");
        System.out.println("b:" + b + "----");
		System.out.println("a长度:" + a.length());
		System.out.println("b长度:" + b.length());
		
		//成功
		byte bytes[] = {(byte) 0xC2,(byte) 0xA0};
	    String UTFSpace = new String(bytes,"utf-8");
	    a = a.replaceAll(UTFSpace, "");
	    System.out.println("a:" + a + "----");
	    System.out.println("a长度:" + a.length());
        
        
	}

}

 

结果:

16
16
a:18699104747     ----
b:12345678977----
a长度:16
b长度:11
a:18699104747----
a长度:11

 

参考文章:

前台传 到后台变成问号的解决方法

HTML中&nbsp 和空格的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值