Java 拆分方法如何计算数组
我有这个节目Java 拆分方法如何计算数组,java,string,split,Java,String,Split,我有这个节目 String s = "aa"; String[] tokens = s.split("a"); System.out.println(tokens.length); 它将打印0 现在,当我将字符串s更改为“aa aaaa”时,这将只打印3,但为什么呢??应该是6点吗 当我在it“aa aaaa”后面添加空格时,它将打印7,这是预期值 那么为什么拆分方法的行为是这样的呢?正如拆分方法的文档所说: Trailing empty strings are th
String s = "aa";
String[] tokens = s.split("a");
System.out.println(tokens.length);
它将打印0
现在,当我将字符串s更改为“aa aaaa”
时,这将只打印3,但为什么呢??应该是6点吗
当我在it“aa aaaa”
后面添加空格时,它将打印7,这是预期值
那么为什么拆分方法的行为是这样的呢?正如
拆分方法的文档所说:
Trailing empty strings are therefore not included in the resulting array.
(尾随空字符串)也可以引用您在示例中给出的正则表达式:a
,表示所有尾随字符串
a
不会出现在结果数组中
那么让我们看看它是如何分裂的
"aa"
将打印0,因为它是尾随的a
"aa a"
将打印3
现在,当您添加空格时,它将不再是a
尾随a,字符串现在将被拆分
在a
之间,从第一个索引开始到已知的尾部a
"aa aaaa"
仍然打印3,因为aaaa
是尾随a
"aa aaaa "
将打印7
现在它不再是一个尾随的a
,因此它将从
围绕给定正则表达式的匹配项拆分此字符串。该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串。
例如:-
例如,字符串boo:and:foo
,使用这些表达式生成以下结果:
Regex结果
:{“boo”,“and”,“foo”}
o{“b”、“”、“:和:f”}
因此,将丢弃所有尾随的a
。要执行返回每个单独元素的完全拆分,请执行以下操作:-
String s = "aa";
String[] tokens = s.split("");
System.out.println(tokens.length); //this will output 3 :- "","a","a"
你开始阅读javadoc了吗?