我不确定我的标题是否完全描述了我想说的内容 - 但这就是我要做的事情:
我有这个班级数字:
public class Numbers{
private int Integers;
private float Floaters;
public Numbers(String xUserInput){
if (xUserInput.matches("[0-9]+")) {
System.out.println("Integer");
try{
this.setIntegers(Integer.parseInt(xUserInput));
} catch (NumberFormatException e) {
System.out.println(xUserInput + " is not of Integer type!");
}
} else if (xUserInput.matches("[0-9]*[.]{1}[0-9]+")) {
System.out.println("Float");
try{
this.setFloaters(Float.parseFloat(xUserInput));
} catch (NumberFormatException e) {
System.out.println(xUserInput + " is not of Float type!");
}
} else {
System.out.println("Invalid Input!");
}
}
public int getIntegers() {
return this.Integers;
}
public void setIntegers(int integers) {
this.Integers = integers;
}
public float getFloaters() {
return this.Floaters;
}
public void setFloaters(float floaters) {
this.Floaters = floaters;
}
现在,在main中 - 我在ArrayList中添加所有用户输入 - 但是我想要打印数组两次,一次是全部整数,然后是所有浮动。
我如何获得原始类型?请告诉我哪里出错了。
PS:我试过了
for(Numbers n : numberList) {
System.out.println(n.getClass().getSimpleName());
}
...但我得到的只是“数字。”
答案 0 :(得分:0)
您始终在循环中显示类名。我想你想要的是:
// first loop
for(Numbers n : numberList) {
System.out.println(n.getIntegers());
}
// second loop
for(Numbers n : numberList) {
System.out.println(n.getFloaters());
}