Java:尝试将int值转换为String

时间:2017-12-05 21:21:09

标签: java string int primitive

在我的方法format(int n)中,我只是尝试将传递的int值作为字符串返回。使用toString()方法。

public String format(int n) {

    return n.toString();
}

但是,我一直收到错误int cannot be dereferenced。根据我的理解,这种情况正在发生,因为我将原始的int值视为一个对象,但我不知道如何修复它。我很感激任何帮助。

2 个答案:

答案 0 :(得分:8)

您不能在基元上调用方法 您可以将int添加到Integer并在其上调用toString()

return ((Integer)n).toString();

感谢自动装箱,您甚至可以通过将int替换为Integer来直接重写您的方法:

public String format(Integer n) {    
    return n.toString();
}

以这种方式调用它(当参数传递时,编译器会将intInteger

int x = ...;
format(x);

但更简单的方法是使用String.valueOf(int)方法:

public String format(int n) {
    return String.valueOf(n);
}

在这种情况下,是否真的需要创建一个只委托给String.valueOf()的方法?

答案 1 :(得分:0)

您还可以将int与空字符串连接起来,如下所示:

public String format(int n) {
    return "" + n;
}

在引擎盖下,这最终调用String.valueOf(n)并使用StringBuilder将两者附加在一起,但是现代编译器会为您优化它,因此它不是性能权衡。