我想删除字符串中的真空。
String input = "java example.java aaa bbb";
String[] temp = input.trim().split(" ");
结果是
java
example.java半年期BBB
但我想要结果
的java
example.java
AAA BBB
所以,我使用拆分(“+”)。结果是对的。 但我不明白,怎么做分裂(“+”)。
答案 0 :(得分:5)
split()采用正则表达式作为其论点。 " +"在正则表达式中表示"前一个元素中的一个或多个"。因此分裂" +"将分成一个或多个空格"。
答案 1 :(得分:3)
来自split()方法的文档
将此字符串拆分为给定正则表达式的匹配项。
一个简单的空间没有+
所有的表达式。
string.split(" +")
将拆分分隔符设置为one or more of the previous element
,在您的情况下,可以是任意数量的空格字符("")。
答案 2 :(得分:1)
为空白提供正则表达式的最佳方法是使用\\s+
。这是一个或多个空间。
String input = "java example.java aaa bbb";
String[] temp = input.trim().split("\\s+");
如果您只期望单个空格,请使用
\\s
作为单个空格。对于多个空格,请始终使用
\\s+
,这就是您的情况。
答案 3 :(得分:1)
String.split()的参数是regex或正则表达式。传递" "意味着它将匹配正好一个空间,传递" +"表示它将匹配一个或多个空格。
这里有关于正则表达式的好教程:http://www.regular-expressions.info/
答案 4 :(得分:0)
分裂方法中的参数是正则表达式而不是字符串,因为大多数人认为。请参阅split
答案 5 :(得分:0)
参数是regular expression,用于丢弃的项目之间的文本。
使用" "
时,字符串会被剪切为"java", " ", "example.java", " ", "", " ", "", " ", "", " ", "", " ", "", " ", "", " ", "aaa", " ", "", " ", "", " ", "", " ", "", " ", "bbb"
,然后" "
被丢弃,留下"java", "example.java", "", "", "", "", "", "", "aaa", "", "", "", "", "bbb"
。如果一行中有多个空格,则每个空格分别与" "
模式匹配,并且每对空格之间都有一个空字符串""
。
对于" +"
,这意味着任何一个或多个空格的组都是单个匹配。因此字符串被剪切为"java", " ", "example.java", " ", "aaa", " ", "bbb"
,并且空格组被丢弃,留下"java", "example.java", "aaa", "bbb"
。
答案 6 :(得分:0)
我建议使用string.split("\\s+")
,\\s
是任意white-space
字符(空格,标签,输入...)
答案 7 :(得分:0)
.split("")和.split(+)之间的区别是:
正则表达式" ":
正则表达式(" +")
:
短:
" "将数组拆分为一个空格字符。
/ \ s /将数组拆分为各种空白字符
' +'在一个和无限制的时间之间匹配