java 使用正则表达式去除前后空格

网友投稿 677 2022-10-28


java 使用正则表达式去除前后空格

问题描述:

java去除字符串前后空白,身为小伙子的我搞了大半天,其实蛮简单的。

解决方案:

方式一:

trim() trim()是 String里的常用的方法,作用:返回字符串的副本,忽略前导空白和尾部空白*

输出结果:

方式二:正则表达式:

replaceAll(String regex,String replacement):也是String类的常用方法,

是一个形参为可以填正则表达式,第二形参为替换的内容

这里需要的正则式:

(1) \s 表示空格,

(2) ^表示开头

(3) $表示结尾

(4) +表示数量

输出结果:

完结~

补充:JAVA正则表达式匹配多个空格

需求

针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所以需要用到某些方法。

解决方案

利用正则表达式来匹配空格

\\s+

首先利用split("\\s+");方法来对字符串切割,尽可能的匹配空格,这里也挺有意思,因为空格数目不一样,可以动态变换匹配的空格数量,这个实现原理可以看看底层原理,挺有意思。

测试:

String string="a b a a ";

for(String a:string.split("\\s+")){

System.out.println(a);

}

扩充知识

正则表达式的() [] {}有不同的意思。

() 是为了提取匹配的字符串http://。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格。

(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

[0-9]{0,9} 表示长度为 0 到 9 的数字字符串

()和[]有本质的区别

()内的内容表示的是一个子表达式,()本身不匹配任何东西,也不限制匹配任何东西,只是把括号内的内容作为同一个表达式来处理,

例如:(ab){1,3},就表示ab一起连续出现最少1次,最多3次。如果没有括号的话,ab{1,3},就表示a,后面紧跟的b出现最少1次,最多3次。另外,括号在匹配模式中也很重要。这个就不延伸了,LZ有兴趣可以自己查查

[]表示匹配的字符在[]中,并且只能出现一次,并且特殊字符写在[]会被当成普通字符来匹配。例如[(a)],会匹配(、a、)、这三个字符。

所以() http://[] 无论是作用还是表示的含义,都有天壤之别,没什么联系


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:16-11-14
下一篇:arp导致的网络问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~