捕获第一个单词并分配变量

时间:2018-05-04 21:35:07

标签: java

public static void main(String[] args) {


    // Create a usable instance of an input device
    Scanner sc = new Scanner(System.in);
    // Prompt user for input
    System.out.println("Please enter you first name:");
    // Capture first word and assign it to A Variable
    String firstName;
    firstName = sc.next();
    //Construct the greeting
    System.out.println("Hello, " + sc.next() + "!");

我可以在屏幕上输出名称,但我必须输入两次。我相信这是由于sc.next声明,但我不确定。

4 个答案:

答案 0 :(得分:0)

是的,这是由sc.next()引起的,因为你这样做了两次。 将最后一行更改为

System.out.println("Hello, " + firstName + "!");

答案 1 :(得分:0)

使用

X509CertificateSecretParser

在第一次sc.next()之后它是空的(也看下一行)

答案 2 :(得分:0)

问题是您拨打System.out.println("Hello, " + firstName + "!"); 两次:

sc.next()

请改为使用指定的变量 firstName = sc.next(); // 1st time //Construct the greeting System.out.println("Hello, " + sc.next() + "!"); //2nd time

firstname

这可以解决你的问题。

答案 3 :(得分:0)

系统会要求您输入'名字'两次,因为你打了两次 sc.next()。 为了防止这种情况,您可以这样做:

...
//Construct the greeting
System.out.println("Hello, " + firstName + "!");
...

甚至是这种方式,如果您将来不使用String firstName

...
System.out.println("Please enter you first name:");
//Construct the greeting
System.out.println("Hello, " + sc.next() + "!");
...

我还希望使用nextLint()代替next(),因为它会在返回当前行后自动移动扫描仪。 如果您有兴趣,可以看看这里: https://stackoverflow.com/a/22458766/8913124