Java 扫描仪isn';不要扫描我的输入

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

我试着读一行,然后进入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 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) )