我对扫描仪有疑问,它是:
为什么允许以下声明:
String someString;
Scanner readString = new Scanner(someString);
但不允许以下内容:
Scanner readString = new Scanner(String someString);
第二种情况使用String someString而不是全局变量或局部变量。扫描仪为什么不能使用这样的字符串?
提前谢谢!
答案 0 :(得分:0)
Scanner readString = new Scanner(someString);
允许,因为您将String类型的变量传递给Scanner的构造函数。
Scanner readStringa = new Scanner(String someString);
是不允许的,因为new Scanner(String someString)
是无效的java语句,并且编译器无法正确解析它并且您将得到“非法启动表达式”错误
答案 1 :(得分:0)
我认为你误解了Java语法。
第一个代码分为两个声明:
String someString;
字符串变量
第二行是名为readString的Scanner对象的声明:
Scanner readString = new Scanner(someString);
其中构造函数的参数使用readString作为带有参数someString
的新Scanner第二段代码只是对第一段代码的第二个声明的错误用法,而不是真实的参数,你写了一个变量声明。
答案 2 :(得分:-1)
如果我理解你,你想在一行中做到这一点。 那么这样做的方法是:
Scanner readString = new Scanner(new String("The String you want"));