Scanner(String someString);

时间:2014-09-25 20:24:53

标签: java

我对扫描仪有疑问,它是:

为什么允许以下声明:

String someString;
Scanner readString = new Scanner(someString);

但不允许以下内容:

Scanner readString = new Scanner(String someString);

第二种情况使用String someString而不是全局变量或局部变量。扫描仪为什么不能使用这样的字符串?

提前谢谢!

3 个答案:

答案 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"));