我有一个赋值,我的程序使用if另一个String的条件输出一个简单的String,但是我一直遇到一个无法创建新实例的问题(我认为这就是所谓的)
无论如何,这是我的代码
import java.util.Scanner;
public class EP54
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Do you want to continue? ");
**yesNoChecker check1 = new yesNoChecker();**
System.out.print(EP54.yesNoChecker);
}
public String yesNoChecker()
{
if(in.equalsIgnoreCase("y") ||
in.equalsIgnoreCase("yes") ||
in.equalsIgnoreCase("Sure") ||
in.equalsIgnoreCase("why not"))
System.out.println("OK");
else if(in.equalsIgnoreCase("y") ||
in.equalsIgnoreCase("yes") ||
in.equalsIgnoreCase("Sure") ||
in.equalsIgnoreCase("why not"))
System.out.println("Terminating.");
else
System.out.println("Bad Input");
}
}
请帮帮我! (粗体部分是我得到错误的地方)
任何人都可以给我一个工作版的代码,以便我可以将它与我的相比吗?
答案 0 :(得分:1)
import java.util.Scanner;
public class EP54
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Do you want to continue? ");
String answer = in.next();
yesNoChecker(answer);
}
public static void yesNoChecker(String in)
{
if(in.equalsIgnoreCase("y") ||
in.equalsIgnoreCase("yes") ||
in.equalsIgnoreCase("Sure") ||
in.equalsIgnoreCase("why not"))
System.out.println("OK");
else if(in.equalsIgnoreCase("n") ||
in.equalsIgnoreCase("no") ||
in.equalsIgnoreCase("nope") ||
in.equalsIgnoreCase("quit"))
System.out.println("Terminating.");
else
System.out.println("Bad Input");;
}
}
搞定了
答案 1 :(得分:0)
yesNoChecker()
是一个函数,而不是一个对象。在这种情况下,您需要调用 yesNoChecker()
(也称为“调用方法”),而不是实例化 yesNoChecker
(也称为“创造一个对象”)。相反,您的代码应该类似于:
import java.util.Scanner;
public class EP54
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Do you want to continue? ");
yesNoChecker();
System.out.print(EP54.yesNoChecker);
}
public String yesNoChecker()
{
// (omitted for brevity)
}
}
您实例化类类型的新对象。例如,Scanner
是您在此处使用Java所提供的类。当您说new Scanner()
时,您正在创建Scanner
类的新实例。
答案 2 :(得分:0)
yesNoChecker是一个方法,而不是一个类 - 你无法实例化它。
您可以致电:
yesNoChecker();
但是,它被定义为返回一个String,它当前不会这样做。您可能希望返回正在打印的字符串。
答案 3 :(得分:0)
您还需要从用户/扫描仪类获得实际输入。
类似的东西:
String s = in.nextLine();
然后你将String s与你需要的东西进行比较(“Y”,“yes”等......)
希望这有帮助!
P.S。你的功能可以做到这一点,但要考虑是否有人输入数字而不是字母或作品。在使用之前验证输入始终是个好主意。