对于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
有人能说出它为什么没有编译吗?谢谢!
答案 0 :(得分:10)
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.
答案 1 :(得分: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 );
}
}
答案 2 :(得分:0)
您可以使用Scanner javadoc中详述的input.nextXXX()
之一。解决编译器错误
在你的情况下
您可以使用input.nextLine();
获取整行文字。
默认情况下扫描仪使用的空白分隔符。但是,如果需要扫描由分隔符useDelimiter
分隔的输入序列,可用于设置正则表达式分隔
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
依赖
答案 3 :(得分:0)
您需要使用方法nextLine()
。此方法打印整行。使用next()
,它只会在您的句子中打印一个单词。