Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试学习方法/布尔值。需要帮助吗_Java - Fatal编程技术网

Java 尝试学习方法/布尔值。需要帮助吗

Java 尝试学习方法/布尔值。需要帮助吗,java,Java,试图找出我的代码有什么问题-我想让用户输入与浓度数组一起检查,如果他们输入数组中的任何一个,打印出一条肯定的显示消息。。。然而,无论输入如何,每次我都会得到一个“是的,这是一个有效浓度”的输出 import javax.swing.JOptionPane; public class BASIT_Concentration_Check { public static void main(String[] args) { String[] concentration

试图找出我的代码有什么问题-我想让用户输入与浓度数组一起检查,如果他们输入数组中的任何一个,打印出一条肯定的显示消息。。。然而,无论输入如何,每次我都会得到一个“是的,这是一个有效浓度”的输出

import javax.swing.JOptionPane;
public class BASIT_Concentration_Check
{
    public static void main(String[] args) 
    {
        String[] concentrations = {"DTP","HCIT","INFS","NTEL","WDM"};
        String studentconcentration = getStudentConcentration();
        boolean concentrationvalid = isConcentrationValid(studentconcentration, concentrations);
        displayMessage(concentrationvalid);
    }

    public static String getStudentConcentration()
    {
        String studentconcentration = JOptionPane.showInputDialog(null,"What is your B.S. AIT Concentration?");
        return studentconcentration;
    }

    public static boolean isConcentrationValid(String studentconcentration, String [] concentrations)
    {
        boolean concentrationvalid=false;
        for (int i=0;i<concentrations.length;i++)
        {
            if (concentrations[i]==studentconcentration)
                {
                    concentrationvalid = true;
                }
        }
        return concentrationvalid;
    }

    public static void displayMessage(boolean concentrationvalid)
    {
        if (concentrationvalid==true)
        {
            JOptionPane.showMessageDialog(null, "Yes, that is a valid concentration");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"I'm sorry, that is not a valid concentration");
        }
    }
}
import javax.swing.JOptionPane;
公共类基本浓度检查
{
公共静态void main(字符串[]args)
{
字符串[]浓度={“DTP”、“HCIT”、“INFS”、“NTEL”、“WDM”};
字符串studentconcentration=getStudentConcentration();
布尔浓度有效=isConcentrationValid(学生浓度,浓度);
显示消息(concentrationvalid);
}
公共静态字符串getStudentConcentration()
{
String studentconcentration=JOptionPane.showInputDialog(null,“你的B.S.AIT浓度是多少?”);
返回学生注意力;
}
公共静态布尔值isConcentrationValid(字符串studentconcentration,字符串[]concentrations)
{
布尔值concentrationvalid=false;
对于(inti=0;i
if(浓度[i]==studentconcentration)

这不是Java中比较字符串的方式!

使用
if(浓度[i].equals(学生浓度))


基本上,
=
只比较引用(或基本类型的值),要更详细地描述为什么是这种方式,

您有一个比较错误。在Java中,使用
=
运算符无法处理字符串,因为字符串不是基本类型,它们是对象。因此您必须使用String类的
equals
方法,如下所示

if (concentrations[i].equals(studentconcentration))
这应该是可行的。如果验证为真,您还可以添加一个
break;
语句以节省一些cpu处理。还有一件事,在布尔值的if比较中不需要添加
==true
,您可以使用

if (concentrationvalid)
上述语句与您的语句相同,但可读性更强


希望这有帮助。

您需要使用
.equals()
来比较Java中的字符串。它将返回一个布尔值true或false,如果为true,将激活
if
语句,如果为false,则跳过它

如果希望比较忽略字母是否为大写/小写,也可以使用
.equalsIgnoreCase()

例:


希望这有帮助!

这并不能解释为什么他每次都会得到“是的,那是有效的”。这可以解释为什么他会得到“它是无效的”每次都是,但事实并非如此。@MrTi没错,在这种情况下,问题是不可再现的。这意味着OP很可能没有复制代码、所有代码和代码以外的任何内容。或者没有提供足够的详细信息。或者在注释中错误地写了错误的消息。
if (concentrations[i].equals(studentconcentration))
if (concentrations[i].equalsIgnoreCase(studentconcentration))