为什么这个程序仅给出前两个单词作为输出?S1 []中存储了哪些数据



我试图使用split((函数,但我不知道数据是如何存储在字符串中的(恰恰是以下代码中的s1 [](,而在使用它显示的同时循环将输出作为" Hello Java"。请帮助我了解使用split((函数之后数据中数据存储的结构,以及为什么此代码显示上述输出!

String s="hello java world";  
String s1[]*=s.split("\s");  
for(int i=0;i<s1.length-1;i++)  
    {  
    System.out.print(s1[i]);  
    }  
Output:  
hello  
java  

除了错误的*外,问题还处于for循环条件下。之后,分开字符串,s1.length == 3和有效索引为0,1,2。因此,您的循环仅通过i==0i==1迭代。当i==2时,条件i < s1.length-1为false。

只是摆脱-1

String s = "hello java world";
String[] s1 = s.split("\s");
for(int i = 0; i < s1.length; i++) {  
    System.out.println(s1[i]);  
}

我添加了空间以使其变得更加清晰。还将数组声明中的[]移动为(从我阅读的内容(中,这是首选位置。并将print更改为println,以在其自己的行上打印每个单词。

最新更新