我的程序通过数组多次询问一个问题,但是我需要将该字符串的答案转换为整数1
。知道我知道如果字符串是一堆数字,即numbers = 12345
使用Integer.parseInt(numbers)
,如何将任何旧字符串转换为它的整数对应字符串。如果我在字符串中有一个字符但我希望它取整数值1会发生什么?到目前为止,我已经将它设置为这样了
String[] elements = {"Vote A for Football", "Vote B for Basketball"};
String question
int football = 0; // not sure if these should be strings or integers
int basketball = 0;
int tally;
for (String element : elements)
{
System.out.println(element);
}
question = JOptionPane.showInputDialog("What is your favourite sport?");
tally = Integer.parseInt(question);
最后一行是获取我的部分,因为我希望他们通过输入A
或B
进行投票,但我还需要控制台打印他们投票支持该项运动的次数(这是一个数组练习所以问题会多次出现。)
答案 0 :(得分:2)
欢迎来到SO。我不确定你在问什么,但最好将值存储为整数,并保持字符串更多地是用户的接口。这样,您可以轻松地计算值而无需任何转换。只有当您将其呈现给用户时才需要转换。
话虽如此,如果要解析字符串(如“A”或“B”),可以将其响应存储为字符串,然后使用if和equals将其与已知值列表进行比较:
if ("A".equals(question)){
football++;
} else if ("B".equals(question)) {
basketball++;
} else {
// do nothing, process error, ask question again.
}
还要记得在初始化变量时关闭语句:
String question;
或
String question = "";
但正如@ Jean-FrançoisSavard所提到的那样,变量也应该有意义,所以这会更清楚:
String userResponse = "";
答案 1 :(得分:0)
使用枚举的另一种方法
public enum Game {
A {
@Override
public String getGame() {
return "Football";
}
@Override
public int getNumber() {
// TODO Auto-generated method stub
return 1;
}
},
B {
@Override
public String getGame() {
return "Basketball";
}
@Override
public int getNumber() {
// TODO Auto-generated method stub
return 2;
}
};
public abstract String getGame();
public abstract int getNumber();
}