Java拆分字符串正则表达式:前导空格
我知道以前有人问过关于如何使用前导空格分割字符串的问题,例如:
String str = " I want to be split \t!"
String[] sarr = str.split("\\s+");
for(String s : sarr) System.out.println("'" + s + "'");
生成结果:
'' //leading white space
'I'
'want'
'to'
'be'
'split'
'!'
解决此问题的方法是在拆分之前使用str.trim()
但我想知道的是,为什么split()不能跳过前导空格,但可以在字符串的中间/结尾跳过
# 1 楼答案
我认为这应该回答你的问题
摘自String docs
# 2 楼答案
除了anirudh所说的,还要注意另一个选项:在前导空格中加上“I”:
这给你
(并摆脱恼人的第一场比赛)
# 3 楼答案
在Java中,在其自身的本机字符集上匹配空白,因为Java不支持Unicode空白属性-即使这样做是严格要求满足UTS#18’s RL1.2!
Unicode标准,因此您必须使用如下代码: