基本上,我正在创建一个应用程序,用户可以选择18个不同单位(学校基本上)的通行证,优点或区别。我的问题是,我无法弄清楚如何告诉微调器,如果其中的字符串是" Pass",那个字符串等于整数70(Merit = 80,区别= 90)。我正在为旋转器使用字符串数组和适配器。我目前正在尝试使用If语句执行此操作:
if (spinner1.toString().equals("Pass")){}
我只是不知道我该怎么做才能告诉字符串等于int。
重申一下,我希望Pass to = 70,Merit = 80,Distinction = 90。
非常感谢任何指导和帮助。 :)
答案 0 :(得分:1)
希望这会有所帮助,它有点模糊...... 你的意思是,你有一些字符串< - > int转换吗?
public YourConstructor() {
/*Map<String, Integer>*/ theMap = new HashMap<String, Integer>();
theMap.put("Pass", 10);
theMap.put("Merit", 70);
theMap.put("distinction ", 90);
...
}
public int getNumber(String text) {
return theMap.get(text);
// I hope this will be, one day, forgotten. This is BAD.
//for (String s : theMap.keySet())
// if (text.equals(s))
// return theMap.get(s);
// return 0; // default for "item not found", or throw
}
因此final String yourString = ""+getNumber(spinner.getSelectedItem().toString());
将:: String转换为整数:
int integer = Integer.parseInt(text);
整数到字符串
String theString = ""+integer;
答案 1 :(得分:0)
创建如下地图:
Map<String,int> gradeScoreMap=new HashMap<String,int>();
gradeScoreMap.put("PASS",70);
gradeScoreMap.put("MERIT",70);
gradeScoreMap.put("DISTINCTION",70);
上面的地图将包含您的成绩分数
的映射为Map创建一个getter:
public String getgradeScoreMap(String grade) {
return gradeScoreMap.get(grade);
}
上述方法将用于根据输入等级获取分数。
现在使用:
int score=-1;
if (spinner1.toString().equals("Pass")){
score =getgradeScoreMap(spinner1.toString());
}
分数将是&#34; PASS&#34;的等价值。即70