对于涉及数组的拆分方法(在java中),什么时候出现“”?
For a split method involving arrays (in java), when do "" occur?
拆分方法的签名是:
public String[] 拆分(字符串正则表达式)
以下示例假定已创建测试 String s 并且已声明 String sp 数组:
String s = "Hello again", sp[];
示例:
sp = s.split("a|g");
书上怎么说这个问题的答案是:
"a|g" means a or g (same as [ag]), sp[0] = "Hello ", sp[1] = "" sp[2] = "", sp[3] = "in", (notice the elements of zero length)
谁能解释一下上面的例子,以及为什么 sp[1] 和 sp[2] 会有 ""。另外,当 a|g 与 [ag]
相同时,这意味着什么
假设您在字符串中使用 X 而不是 'a' 和 'g':“Hello XXXin”并且您在“X”上拆分(因为在我们的示例中 'X' 是 'a' 或 'g',即“a|g”)。里面有三个连续的X,中间没有任何东西。
H e l l o X X X i n
H e l l o ^ ^ ^ i n
----------- - - ----
(双倍间距有助于可视化拆分发生的位置)
因此你得到它们之间的两个空字符串。
关于您的评论,让我们看看当 X 是 'e' 或 'g'
时会发生什么
H X l l o a X a i n
H ^ l l o a ^ a i n
- -------- -----
如你所见,两次出现的X之间没有空格,因为没有连续的X,所以你得到三个正确的字符串:"H"、"llo a"和"ain"。
关于你的问题是正则表达式“a|g”和“[ag]”是等价的,第一个意思是“an 'a' OR a 'g'”, second 表示“属于仅由字符 'a' 和 'g' 组成的集合的任何字符”。我希望你明白这两个陈述在逻辑上是等价的。
拆分正则表达式根据匹配的内容进行消费和拆分。在这种情况下,它会根据 "a"
或 "g"
.
进行拆分
这是匹配项周围带有方括号的输入,下面是与输入对齐的结果的行:
Hello (a)(g)(a)in
"Hello ","","","in"
拆分方法的签名是:
public String[] 拆分(字符串正则表达式)
以下示例假定已创建测试 String s 并且已声明 String sp 数组:
String s = "Hello again", sp[];
示例:
sp = s.split("a|g");
书上怎么说这个问题的答案是:
"a|g" means a or g (same as [ag]), sp[0] = "Hello ", sp[1] = "" sp[2] = "", sp[3] = "in", (notice the elements of zero length)
谁能解释一下上面的例子,以及为什么 sp[1] 和 sp[2] 会有 ""。另外,当 a|g 与 [ag]
相同时,这意味着什么假设您在字符串中使用 X 而不是 'a' 和 'g':“Hello XXXin”并且您在“X”上拆分(因为在我们的示例中 'X' 是 'a' 或 'g',即“a|g”)。里面有三个连续的X,中间没有任何东西。
H e l l o X X X i n
H e l l o ^ ^ ^ i n
----------- - - ----
(双倍间距有助于可视化拆分发生的位置)
因此你得到它们之间的两个空字符串。
关于您的评论,让我们看看当 X 是 'e' 或 'g'
时会发生什么H X l l o a X a i n
H ^ l l o a ^ a i n
- -------- -----
如你所见,两次出现的X之间没有空格,因为没有连续的X,所以你得到三个正确的字符串:"H"、"llo a"和"ain"。
关于你的问题是正则表达式“a|g”和“[ag]”是等价的,第一个意思是“an 'a' OR a 'g'”, second 表示“属于仅由字符 'a' 和 'g' 组成的集合的任何字符”。我希望你明白这两个陈述在逻辑上是等价的。
拆分正则表达式根据匹配的内容进行消费和拆分。在这种情况下,它会根据 "a"
或 "g"
.
这是匹配项周围带有方括号的输入,下面是与输入对齐的结果的行:
Hello (a)(g)(a)in
"Hello ","","","in"