Java 扫描仪isn';不要扫描我的输入
我试着读一行,然后进入if语句。但在第一次输入红色后,它就终止了。 我不知道出了什么问题,也弄不明白Java 扫描仪isn';不要扫描我的输入,java,java.util.scanner,Java,Java.util.scanner,我试着读一行,然后进入if语句。但在第一次输入红色后,它就终止了。 我不知道出了什么问题,也弄不明白 import java.util.Scanner; public class mainen { public static void main(String[] args) { Formler form = new Formler(); Scanner Sscan = new Scanner(System.in); Scanner Ds
import java.util.Scanner;
public class mainen {
public static void main(String[] args) {
Formler form = new Formler();
Scanner Sscan = new Scanner(System.in);
Scanner Dscan = new Scanner(System.in);
String input;
System.out.println("Formler: Molmassa");
input = Sscan.nextLine();
if(input == "molmassa" || input == "Molmassa"){
double m;
double M;
System.out.println("Massa: "); m = Dscan.nextDouble();
System.out.println("Molmassa: "); M = Dscan.nextDouble();
System.out.println(form.getMolmassa(m, M));
}
}
}
您应该使用equals
方法或equalsIgnoreCase
方法等于String
对象
if(input.equalsIgnoreCase("Molmassa")){}
=
用于基本均衡检查。将if
语句更改为:
if(input.equalsIgnoreCase("molmassa") ) { }
那么它应该像你期望的那样工作。请记住,始终使用
equals()
或equalsIgnoreCase()
方法比较字符串<代码>=比较对象引用而不是实际值。您需要替换相等检查:
if(input == "molmassa" || input == "Molmassa"){
具有以下特征:
if(input.equals("molmassa") || input.equals("Molmassa")){
第一个检查字符串是否是相同的对象,而第二个检查它们是否是相同的值,这是您在这里需要的。问题在于您是否将
条件更改为
if(input.equalsIgnoreCase("molmassa) )
每件事都应该很顺利
还有一件事,您不需要使用单独的扫描仪
来进行字符串
和双重
输入,您可以使用一个扫描仪
对象来进行两种输入。您的字符串比较是错误的。改用input.equals(“Molmasa”)
。
if(input.equalsIgnoreCase("molmassa) )