Java String Split()方法
我想知道下面这行会做什么:Java String Split()方法,java,regex,Java,Regex,我想知道下面这行会做什么: String parts = inputLine.split("\\s+"); 这会简单地在行中的任何空格处拆分字符串吗?我认为这是一个正则表达式,但我以前从未见过它们。是的,但实际上是任意数量的空格元字符(包括制表符、换行符等)。请参阅。它将在一个(或多个)连续空白字符上拆分字符串。将预定义的字符类(其中\s是其中之一)描述为 预定义字符类 . Any character (may or may not match line terminators) \d
String parts = inputLine.split("\\s+");
这会简单地在行中的任何空格处拆分字符串吗?我认为这是一个正则表达式,但我以前从未见过它们。是的,但实际上是任意数量的空格元字符(包括制表符、换行符等)。请参阅。它将在一个(或多个)连续空白字符上拆分字符串。将预定义的字符类(其中
\s
是其中之一)描述为
预定义字符类
. Any character (may or may not match line terminators)
\d A digit: [0-9]
\D A non-digit: [^0-9]
\s A whitespace character: [ \t\n\x0B\f\r]
\S A non-whitespace character: [^\s]
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
请注意,
\
是根据需要对反斜杠进行转义,以将其嵌入到字符串中
是,它会拆分制表符和空格:
String t = "test your function aaa";
for(String s : t.split("\\s+"))
System.out.println(s);
输出:
是,因为split
将regex作为参数
在regex\s
中,表示包含空格字符的类型,如:
- 选项卡
\t
- 空格
”
- 行分隔符
\n
\r
- 更多
+
是一种可以被理解为“一次或多次”的代码,它使\s+
表示从一个或多个空格生成的文本
我们需要将这个正则表达式写成“\\s+
(带两个反斜杠),因为in-String\
被认为是特殊字符,需要转义(带另一个反斜杠)来生成\
文本
因此
split(\\s+”)
将生成一个由一个或多个空格分隔的令牌数组。顺便说一句,后面的空元素将被删除,因此“abc”。split(\\s+”)
将返回数组[“a”、“b”、“c”]
而不是[“a”、“b”、“c”、”“]
您自己尝试过吗?这会导致类型不匹配,因为String#split
返回的是字符串[]
,而不仅仅是字符串
test
your
function
aaa