我正在编写代码来查找字符串中的单词数,代码如下:
package exercises;
import java.util.Scanner;
public class count {
public static int countwords(String str){
int count=0;
String space="";
String[] words=str.split(space);
for(String word:words){
if(word.trim().length()>0){
count++;
}
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter the string");
Scanner input=new Scanner(System.in);
String s=input.nextLine();
System.out.println(countwords(s));
}
}
为了做练习,我再次将此代码编写为
package exercises;
import java.util.Scanner;
public class count {
public static int countwords(String str){
int count=0;
String space="";
String[] words=str.split(space);
for(String word:words){
if(word.trim().length()>0){
count++;
}
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter the string");
Scanner input=new Scanner(System.in);
String s=input.nextLine();
System.out.println(countwords(s));
}
}
我只是想知道为什么这段代码的输出代码不同?虽然我逐行检查了代码,但我找不到这两个代码输出不同的原因?任何人都可以请帮助
答案 0 :(得分:2)
由于您的分割字符串为""
,因此每个字母都会被提取为一个单词。
只需将String space="";
更改为String space=" ";
或String space="\\s+";
,您就可以了!
正则表达式工具\\s+
表示在一次或多次出现空格后应拆分字符串。
答案 1 :(得分:0)
String space="\\s+";
错了。这是一个空字符串,使用错误。
你最好使用
String space=" ";
或
{{1}}
正则表达式“\\ s +”是“一个或多个空白符号”
答案 2 :(得分:0)
另一种选择可能是这样的:
for (var l = 0; l <= word.length ; l++) {
innerDiv = document.createElement('div');
innerDiv.id = 'Block' + l;
innerDiv.className = 'Block';
innerDiv.innerHTML = word.charAt(l);
}
iDiv.appendChild(innerDiv);
document.getElementsByTagName('body')[0].appendChild(iDiv);
}