您好我正在尝试构建一个简单的程序,将包含数字的字符串转换为整数。我收到System.out.println上的错误,不知道为什么,有人可以帮忙吗?
public class TypeConvert {
int strToInt;
public int convert (String s){
strToInt = Integer.parseInt(s);
return strToInt;
}
public static void main(String[] args) {
String strNumber=("100");
TypeConvert convertToInt = new TypeConvert();
convertToInt.convert(strNumber);
System.out.println(strToInt);
}
}
这已被标记为重复,因此我正在编辑。我确实已经阅读了所有相关帖子来解决我的问题,但由于我不明白如何解决我的问题,我创建了自己的帖子。
答案 0 :(得分:2)
改变这一点,
System.out.println(strToInt);
到
System.out.println(convertToInt.strToInt);
因为strToInt
是TypeConvert
个实例的字段(您已将其命名为convertToInt
)。
或者,你可以写
System.out.println(convertToInt.convert(strNumber));
因为convert
函数返回结果。
答案 1 :(得分:0)
您的convert
方法应该是一种静态方法,因为她不需要任何"状态"信息。
public class TypeConvert {
public static int convert (String s){
int strToInt = Integer.parseInt(s);
return strToInt;
}
public static void main(String[] args) {
String strNumber=("100");
int strToInt = TypeConvert.convert(strNumber);
System.out.println(strToInt);
}
}
通常在需要使用状态时创建非静态字段和实例方法。例如,让我们打印一个人的姓名:
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public static void main(String[] args) {
Person bob = new Person("Bob");
Person john = new Person("John");
System.out.println(bob.getName()); // Prints "Bob"
System.out.println(john.getName()); // Prints "John"
}
}
在这种情况下,您绝对需要"保存"实例属性中的name
变量,因为每个Person
将具有不同的名称。
在您给我们的示例中,对于给定的字符串,输出将始终相同,因此您可以使用静态方法。