我正在尝试读取用户给出的行,并取出并打印出正确的东西。现在,当我输入朱利安时,它没有打印任何东西。
import java.util.Scanner;
public class fantasyFootball {
public static void main(String[ ] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a name: ");
String n = reader.toString();
if("Julian".equals(n)){
System.out.println("Win and Win: You go to the Playoffs");
System.out.println("Lose and Win: ");
System.out.println("Lose and Win: ");
System.out.println("Lose and Lose: ");
}
reader.close();
}
}
使用toString()
无法从Scanner
获得任何输入。您可能是要使用这样的东西:
String n = reader.nextLine();
String n = reader.toString();
-这一行引起问题。没有提供方法.toString()
来帮助您从Scanner
获得输入。取而代之的是,您应该使用String n = reader.nextLine()
-它从标准输入设备给出的输入(我想这是示例中的键盘)或另一个指定的设备。
提供方法.toString()
是为您提供另一种可能性。这就是Java API文档所说的:
" .toString()返回对象的字符串表示。通常,ToString方法返回一个"以文本表示"该对象的字符串。结果应该是简洁但有益的表示,对于一个容易要阅读的人。建议所有子类都覆盖此方法。"
Java中创建的每个类都扩展了类对象(其中包含方法toString()
)。因此,对于您自己创建的对象实例,有可能调用方法tostring()。有时,您可能对使用该方法给出的信息感到不满意(默认情况下,您通常只在内存中得到特定对象的重复指向的地址),因此您可以简单地在同类中覆盖此方法。有一个简单的示例您如何实现这一目标,以使其为您打印更多有用的信息:
class MyClass {
Integer i = 55;
public String toString() {
return "i stored in MyClass: " + i;
}
}
public class Test {
public static void main(String[ ] args) {
MyClass obj = new MyClass();
System.out.println(obj);
}
}
// That code gives a following output:
// i stored in MyClass: 55