Java-比较字符串输入
这段代码似乎没有将输入与我想要的字符串(“yes”或“no”)进行比较。我是一名初学者,这只是我正在使用的基本代码。虽然返回字符串,但它不会提供与用户键入内容相关的任何信息: 返回此Java-比较字符串输入,java,Java,这段代码似乎没有将输入与我想要的字符串(“yes”或“no”)进行比较。我是一名初学者,这只是我正在使用的基本代码。虽然返回字符串,但它不会提供与用户键入内容相关的任何信息: 返回此扫描仪的字符串表示形式。扫描仪的字符串表示形式包含可能对调试有用的信息。具体格式尚未确定 使用或,而不是扫描仪#toString() 注意,这是一个非常基本的问题,可以通过查阅JavaAPI文档(称为JavaDocs)轻松回答。在发布堆栈溢出之前,您应该始终查阅相关的JavaDocs。您的IDE可能有很好的内置Ja
扫描仪的字符串表示形式。扫描仪的字符串表示形式
包含可能对调试有用的信息。具体格式尚未确定
使用或,而不是扫描仪#toString()
注意,这是一个非常基本的问题,可以通过查阅JavaAPI文档(称为JavaDocs)轻松回答。在发布堆栈溢出之前,您应该始终查阅相关的JavaDocs。您的IDE可能有很好的内置JavaDoc,但是您也可以在这里找到JavaSE JavaDoc:。您可以使用Scanner.next()
方法或Scanner.nextLine()
方法Scanner.toString()
给出了Scanner
类的字符串表示形式。
Scanner.toString()
实际上不从控制台读取输入文本
进一步资料
您可以使用Scanner类中可用的特定方法,如
import java.util.Scanner;
public class TrueFalseQuiz {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
String youranswer;
boolean answer = false;
System.out.print("The queens name is Elizabeth? yes or no ");
youranswer = myScanner.toString();
String start = myScanner.next();
{
if (youranswer.equals("yes")) {
answer = true;
}
}
if (answer == true) {
System.out.println("Answer is correct");
} else {
System.out.println("Answer is wrong");
}
}
}
等等。。。看
上述方法将帮助您继续输入文本,而无需对文本进行格式化,如将其解析为整数和全部。因此,这里有几件事:
- 您希望使用或从最终用户检索输入
- 您希望摆脱
if
语句周围的静态代码块
- 您想将答案与任何情况进行比较-如果我输入“是”,它将失败。您可以将其更改为:
Scanner.nextShort()
Scanner.nextByte()
Scanner.nextInt()
因为它是一个布尔值,所以不必对该值进行比较,如果该值为true,则将变量设置为true。您可以显式地设置它
- 在最后一个块中,您不需要在布尔值中与
true
进行比较。你可以简单地说如果(回答)
但是op在start变量中使用了Scanner#next()
,我假设如果他在if(..)条件下从您的答案更改为start,这个程序可能会工作:)。但是现在这个值被丢弃了,因为您是初学者,我建议您尽快阅读“Head First Core Java”。
answer = "yes".equalsIgnoreCase(youranswer);