无法将整数应用于java.lang.string错误

时间:2018-10-04 13:10:26

标签: java android

我确定这是一个愚蠢的问题,但是我是java的新手。 谁能看到此问题的可能原因?

ArrayList<String> timesTableContent = new ArrayList<>();

    for (int i = 1; i <= 10; i++) {

        timesTableContent.add(Integer.toString(timesTable + "      X     " + i + "      =     " + i * timesTable));

4 个答案:

答案 0 :(得分:3)

Integer.toString()将整数对象转换为字符串。

timesTable + " X " + i + " = " + i * timesTable本身返回一个字符串值。因此,您可以将其直接添加到您的代码中,如下所示:

ArrayList<String> timesTableContent = new ArrayList<>();

for (int i = 1; i <= 10; i++) {

    timesTableContent.add(timesTable + "      X     " + i + "      =     " + i * timesTable);

在您的代码中,您正在通过实际上接受Integer值的方法传递字符串对象。这就是整个问题。

答案 1 :(得分:3)

编辑:当方法仅接受Integer时,您正在对String调用Integer.toString()。这就是为什么收到您提供的错误消息的原因。

我相信您在括号中放了一点点。

您可以使用以下内容构建所需的字符串:

ArrayList<String> timesTableContent = new ArrayList<>();

int timesTable = 2;

for (int i = 1; i <= 10; i++) {
    timesTableContent.add(timesTable + 
                          "      X     " + 
                                       i + 
                          "      =     " + 
                          (i * timesTable));
}

答案 2 :(得分:2)

您为什么使用Integer.toString通话?尝试将其删除。

答案 3 :(得分:0)

尝试使用Integer.toString()连接整数而不是String.valueOf()

代替

ArrayList<String> timesTableContent = new ArrayList<>();

for (int i = 1; i <= 10; i++) {

    timesTableContent.add(Integer.toString(timesTable + "      X     " + i + "      =     " + i * timesTable));

替换此

ArrayList<String> timesTableContent = new ArrayList<>();

for (int i = 1; i <= 10; i++) {
    timesTableContent.add(timesTable + "      X     " + String.valueOf(i) + "      =     " + String.valueOf(i * timesTable)));
}

但是不要使用它

只是串联而不转换它。谢谢