字符串int变量澄清

时间:2014-04-01 05:11:41

标签: java string class int type-conversion

我收到以下错误消息

G:\CIS260\Assignments>javac PhoneNumber.java
PhoneNumber.java:45: error: incompatible types
        number = decode(c);
                       ^
  required: int
  found:    String
1 error

在班级的开头我有

char c;
private int number = 0

这使得它成为一个int所以我理解为了编译下一行我必须有两个相同的数据类型。我的理解是

str[1].valueOf(number);

number = decode(c);
public static String decode(char c){

 switch (c) {

应该使变量NUMBER成为一个字符串,使得解码和数字相等的数据类型,因为它们都是字符串。

我觉得我可能会忘记一个步骤来制作两种字符串数据类型。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

是的,你将数字声明为整数。

所以你应该使用Integer.ParseInt来投射它。

答案 1 :(得分:1)

您的方法public static String decode(char c)返回String的值,但变量number接受值String,该值被声明为Integer < / p>

尝试返回类型Integer,如public static int decode(char c)

答案 2 :(得分:1)

您的方法返回String

您正尝试将返回的字符串存储在int

Java不会像这样自动将字符串转换为整数。您必须明确地进行转换。您可以使用Integer.parseInt

int number = Integer.parseInt(decode(c));

请注意,如果返回的字符串实际上不是有效整数,则会抛出NumberFormatException

答案 3 :(得分:1)

char c = 0; //未声明和初始化

number = Integer.parseInt(decode(c));