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_Variables - Fatal编程技术网

带有用户定义字符串变量的Java字数计算程序

带有用户定义字符串变量的Java字数计算程序,java,string,variables,Java,String,Variables,在前言中,我对Java非常陌生 我一直在试图弄清楚下面的代码是怎么回事——我试图找到输入中的空格数(字符串s),但只要将输入用作变量,它就不会传递。但是,设置的字符串值不起作用,即: String s = ("Happy days for all."); // Outputs "Spaces = 3" 我读过一些关于为什么会这样的文章,但我找不到一个关于如何解决这个问题的明确答案。有什么建议吗 import java.util.Scanner; clas

在前言中,我对Java非常陌生

我一直在试图弄清楚下面的代码是怎么回事——我试图找到输入中的空格数(字符串s),但只要将输入用作变量,它就不会传递。但是,设置的字符串值不起作用,即:

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