Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分方法如何计算数组_Java_String_Split - Fatal编程技术网

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了吗?