使用If / Else语句将字符串转换为Char

时间:2016-02-05 15:54:02

标签: java string if-statement char

我真的很喜欢编程,而且我一直在寻找能够解决这个实验室的日子。实验室非常简单,我相信我的逻辑是正确的,但是在执行我的代码时,我没有得到理想的结果。程序要求输入三个整数和一个字符。如果字符是'S',程序将打印前3个整数的总和,如果字符是'P',则产品'A',平均值和任何其他字符都会输出错误。

以下是我的代码。它要求三个整数和一个字符,但结果总是一个错误,即使我输入'S','P'或'A'。

非常感谢任何帮助。

谢谢, 乔

    int n1, n2, n3;
    String numberFromKB;
    String charFromKB;
    Scanner keyboard = new Scanner (System.in);

    numberFromKB = JOptionPane.showInputDialog("Enter the first number.");
    n1 = Integer.parseInt(numberFromKB);

    numberFromKB = JOptionPane.showInputDialog("Enter the second number.");
    n2 = Integer.parseInt(numberFromKB);

    numberFromKB = JOptionPane.showInputDialog("Enter the 3rd number.");
    n3 = Integer.parseInt(numberFromKB);

    charFromKB = JOptionPane.showInputDialog(null, "Enter a character:");
    if (charFromKB = "s")
    {
        System.out.println("Sum of integers is: " + n1 + n2 + n3);
    }
    else if (charFromKB = "p")
    {
        System.out.println("Product of integers is: " + n1 * n2 * n3);
    }
    else if (charFromKB = "a")
    {
        System.out.println("Average of integers is: " + ((n1 + n2 + n3)/3f));
    }
    else 
    {
        System.out.println("ERROR!");
    }

}

}

4 个答案:

答案 0 :(得分:0)

您正在使用相等的运算符,因此将charFromKB指定为等于" S"

相反,你应该使用字符串equals方法,切换它:

if (charFromKB = "s")
{
        System.out.println("Sum of integers is: " + n1 + n2 + n3);
}

用这个:

if (charFromKB.equals("s"))
{
       System.out.println("Sum of integers is: " + n1 + n2 + n3);
{

等于运算符" =="不能与Strings合作。有关详情,请参阅link

答案 1 :(得分:0)

使用equals来比较两个String。在您的情况下:if (charFromKB.equals("s"))

    int n1, n2, n3;
    String numberFromKB;
    String charFromKB;

    String result = "";
    try {
        numberFromKB = JOptionPane.showInputDialog("Enter the first number.");
        n1 = Integer.parseInt(numberFromKB);

        numberFromKB = JOptionPane .showInputDialog("Enter the second number.");
        n2 = Integer.parseInt(numberFromKB);

        numberFromKB = JOptionPane.showInputDialog("Enter the 3rd number.");
        n3 = Integer.parseInt(numberFromKB);

        charFromKB = JOptionPane.showInputDialog(null, "Enter a character:");

        if (charFromKB.equalsIgnoreCase("s")) {
            result = "Sum of integers is : " + (n1 + n2 + n3);
        } else if (charFromKB.equalsIgnoreCase("p")) {
            result = "Product of integers is: " + (n1 * n2 * n3);
        } else if (charFromKB.equalsIgnoreCase("a")) {
            result = "Average of integers is: "+ ((n1 + n2 + n3) / 3);
        } else {
            result = "ERROR";
        }
    } catch (Exception e) {
        result = "ERROR";
    }

    JOptionPane.showMessageDialog(null, result);

答案 2 :(得分:0)

首先,你的if语句错了:

=用于赋值,因此请使用==进行比较。

另外,双引号“”用于表示String,因此请使用单引号''来表示字符。

if (charFromKB == 's') { ... }

其次,小写的','''和'a'与大写的'S','P'和'A。

不同。

如果您只想以大写字母阅读这些字母,则需要指定。

if (charFromKB == 'A') { ... }

如果您希望读取这些字母不区分大小写,则有两种选择:

if (charFromKB == 'A' || charFromKB == 'a') { ... }

if (Character.toLowerCase(charFromKB) == 'a') { ... }

答案 3 :(得分:-1)

尝试在if()中使用==运算符而不是=,而不是

 charFromKB = "p"

charFromKB == "p"