带有用户定义字符串变量的Java字数计算程序
在前言中,我对Java非常陌生 我一直在试图弄清楚下面的代码是怎么回事——我试图找到输入中的空格数(字符串s),但只要将输入用作变量,它就不会传递。但是,设置的字符串值不起作用,即:带有用户定义字符串变量的Java字数计算程序,java,string,variables,Java,String,Variables,在前言中,我对Java非常陌生 我一直在试图弄清楚下面的代码是怎么回事——我试图找到输入中的空格数(字符串s),但只要将输入用作变量,它就不会传递。但是,设置的字符串值不起作用,即: String s = ("Happy days for all."); // Outputs "Spaces = 3" 我读过一些关于为什么会这样的文章,但我找不到一个关于如何解决这个问题的明确答案。有什么建议吗 import java.util.Scanner; clas
String s = ("Happy days for all."); // Outputs "Spaces = 3"
我读过一些关于为什么会这样的文章,但我找不到一个关于如何解决这个问题的明确答案。有什么建议吗
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Type a sentence > ");
String s = input.next();
long spaces = s.replaceAll("[^ ]", "").length();
System.out.print("Spaces = " + spaces);
}
}
输入
输出:
Spaces = 0
next()
将从此扫描仪返回下一个完整的令牌。如果您的输入是
Happy days for all.
它将返回Happy
,第二次调用返回days
,第三次调用返回,最后一次调用返回all.
如果你想立刻得到完整的句子,你需要使用nextLine()
这行代码有问题:
字符串s=input.next()
input.next()将把输入返回到一个分隔符,在本例中是一个空格。
所以s==“快乐”
将input.nextLine()替换为input.nextLine() 使用nextLine()。感谢您的快速回复和澄清。幸运的是,这是一个快速解决方案!哈哈,谢谢你快速清晰的回复!
Spaces = 0