【问题标题】:incompatible types: String cannot be converted to int even there're no strings [closed]不兼容的类型:即使没有字符串,字符串也无法转换为 int [关闭]
【发布时间】:2017-11-20 16:32:11
【问题描述】:

我正在尝试学习 Java 编程,但是当我尝试制作一个简单的 BMI 计算器时出现此错误,该错误是在第 7 行生成的,没有“Stings”将其转换为 int 实际上都是“int”这里!请帮忙!

package com.sparkedleads.bminew;

public class MyBmiNew {

    public static void main(String[] args) {

        int myBmi = myBmiCal("20", "10");
        System.out.println("Your BMI is " + myBmi);

    }

    public static int myBmiCal(int massOfPerson, int heightOfPerson){

        int bmiScore = massOfPerson/heightOfPerson;

        return bmiScore;
    }
}

【问题讨论】:

  • myBmiCal(20, 10)
  • "没有“字符串”" "20""10" 是字符串,而不是整数。
  • 编译器完全正确——那些字符串。我不知道你为什么认为他们是ints。

标签: java string int


【解决方案1】:

您将两个参数作为字符串类型传递,“20”、“10”:

int myBmi = myBmiCal("20", "10");

但应该是int类型:

int myBmi = myBmiCal(20, 10);

"" - 这意味着在 Java 中只是空字符串。 “20” - 表示值为 20 的字符串。“20”和 20 在 Java 中是不同的类型。这是documentation 了解更多信息。

【讨论】:

  • 天哪,我太笨了:(谢谢先生帮助像我这样的菜鸟!
  • 不客气!
【解决方案2】:

你的错误是int myBmi = myBmiCal("20", "10");

将数字放在引号中使其成为字符串,因此应该是:int myBmi = myBmiCal(20, 10);

【讨论】:

    【解决方案3】:

    您的代码的实际问题是您已将参数传递给

    myBmiCal("20","10");
    

    这使编译器认为 20 和 10 实际上是字符串参数,而不是将它们视为整数类型。 前往myBmiCal(20,10);

    我们还要记住,我们运行 java 的计算机只不过是只听从我们指令的愚蠢机器。

    【讨论】:

      【解决方案4】:

      只需从您的参数中删除",因为函数需要int 参数并且您发送了String 参数

      int myBmi = myBmiCal(20, 10);

      【讨论】:

        猜你喜欢
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多