2

当谈到 Java 时,我几乎是一个完整的新手。我已经在 python 和 VB.net 中涉足了一点,仅此而已。

我正在尝试用java编写一个程序,它可以从字面上读取用户的输入并使用以下代码将其显示给他们:

import java.util.Scanner;

public class InputTesting
{   
    public static void main( String[] args )
    {
        Scanner input = new Scanner ( System.in );

        String str1;

        System.out.println("Input string: ");

        str1 = input.nextString();

        System.out.println( str1 );
    }
}

我得到了错误:

InputTesting.java:13: error: cannot find symbol
        str1 = input.nextString();
                    ^
  symbol:   method nextString()
  location: variable input of type Scanner
1 error

有人可以告诉它为什么不编译吗?谢谢!

4

4 回答 4

11
input.nextString();

nextString类中没有调用方法Scanner。这就是您收到错误消息的原因cannot find symbol

尝试

input.nextLine(); // If you're expecting the user to hit enter when done.
input.next(); // Just another option.
于 2013-08-30T13:38:07.150 回答
0
import java.util.Scanner;

public class InputTesting
{   
    public static void main( String[] args )
    {
        Scanner input = new Scanner ( System.in );

         String str1;

        System.out.println("Input string: ");

            str1 = input.next();

        System.out.println( str1 );
    }
}
于 2013-08-30T13:42:33.033 回答
0

您可以使用Scanner javadocinput.nextXXX()中详述的其中一种。解决编译器错误

在你的情况下

您可以使用input.nextLine();获取整行文本。

默认情况下,扫描仪使用的空白分隔符。但是,如果您需要扫描由分隔符分隔的输入序列,useDelimiter可以使用正则表达式 delim

public static void main(String[] args) {
    try (Scanner input = new Scanner(System.in);) {
        input.useDelimiter(";");
        while (input.hasNext()) {
            String next = input.next();
            if ("DONE".equals(next)) {
                break;
            }
            System.out.println("Token:" + next);
        }
    }
}

输入

1a;2b;3c;4d;5e;DONE;

输出

Token:1a
Token:2b
Token:3c
Token:4d
Token:5e

扫描十进制和有符号数字时要小心,因为扫描是Locale依赖的

于 2013-08-30T13:50:16.193 回答
0

您需要使用 method nextLine()。此方法打印整行。通过使用next()它只会在您的句子中打印一个单词。

于 2015-11-13T09:27:53.423 回答