line.split(“[] +”)表示与空格分开?

时间:2013-01-21 02:32:20

标签: java string split

你好,如果我有包含如下行的txt文件:

newmtl material0
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.000000 1.000000
Ks 0.000000 0.000000 0.000000
Tr 1.000000

它被拆分为:

if(line.startsWith("Ks")){
String[] str=line.split("[ ]+");}

返回

0.000000 
0.000000 
0.000000

为什么“[] +”意味着用空格分开?找不到引用它的任何内容。

3 个答案:

答案 0 :(得分:1)

[ ]是括号内的空格。添加+后,表示“1个或更多空格”。这是regular expression (click here to learn more)

例如,[abc]+将匹配aaaacbacbabcbab或一个或多个字母a,{{1}的任意组合}和bc表示“此处的事情之一”,[]表示“一个或多个”。

更多例子:

+

答案 1 :(得分:0)

String.split()将正则表达式作为参数。而这篇文章写得不好,可能是:

" +"

这是匹配一个或多个空格的正则表达式。

记录在案in the Javadoc

答案 2 :(得分:0)

在这种情况下,您的问题表明正则表达式中需要一个空格。但似乎你的意图是捕获one or more spaces

虽然您可以为此编写" +",但通常也会考虑"\n""\t"的准确性。因此,您可以使用表达式:

"\s+"

在Java中表示为:

"\\s+"

避免编译错误。