无法将字母串转换为整数

时间:2015-10-17 14:20:56

标签: java arrays

我的程序通过数组多次询问一个问题,但是我需要将该字符串的答案转换为整数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);

最后一行是获取我的部分,因为我希望他们通过输入AB进行投票,但我还需要控制台打印他们投票支持该项运动的次数(这是一个数组练习所以问题会多次出现。)

2 个答案:

答案 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();

}