如果使用扫描仪Java时的语句



我正在尝试读取用户给出的行,并取出并打印出正确的东西。现在,当我输入朱利安时,它没有打印任何东西。

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