Java 数组中的字数
我正试着数一数数组中的单词。但它不起作用 我的代码:Java 数组中的字数,java,Java,我正试着数一数数组中的单词。但它不起作用 我的代码: public static int countWords(String input) { char []a = input.toCharArray(); int spaces = 0; for(int i = 0; i < a.length; i++) if(a[i] == ' ') spaces++; return spaces + 1; } 公共静态int
public static int countWords(String input)
{
char []a = input.toCharArray();
int spaces = 0;
for(int i = 0; i < a.length; i++)
if(a[i] == ' ')
spaces++;
return spaces + 1;
}
公共静态int countWords(字符串输入)
{
char[]a=input.toCharArray();
int空间=0;
for(int i=0;i
有什么问题
我的输入是
“堆栈溢出”
您的代码有什么问题?这里看起来不错
如果输入字符串包含不安全的空间,则必须通过测试其输入代码(160)来处理此问题:
您的代码计算空格数,并使用空格数推断单词数 不幸的是,这种方法只有在每个单词之间只有一个空格,并且没有前导空格或尾随空格时才有效。它还假设只有一种空格字符,这也不是真的 (旁白:如果您正在阅读用户键入的文本,期望他们总是在每个单词之间留出一个空格而不是其他空格是不现实的。即使规范规定他们会/应该这样做。) 一个简单但更可靠的替代方案是:
- 修剪字符串以删除前导/尾随空格
- 使用String.split分割字符串,为“单词之间的填充”提供一个简单的正则表达式;e、 g.
表示“一个或多个空白字符”“\\s+”
- 返回结果字数组的长度
System.out.println(countWords(“这是一个测试”)代码>正确打印出4。
if(a[i] == 160 || a[i] == ' ')
spaces++