好的,这个问题可能非常简单而且很愚蠢,但我现在正在失利。
我有一个枚举声明如下:
public enum legende : int
{
NONE = 0,
Création = 1,
Reprise = 2 ,
Pause = 3,
Problème_instruction = 4,
Fix_manquant = 5,
Outil_non_adéquat = 6,
Laser = 7,
Pièces_manquantes = 8,
Attente_qualité = 9,
Dérogation = 10,
Séquencement = 11,
Charge_Planif_Insuff = 12,
TERA = 13,
Changement_d_OF = 14,
OFF_Fin_shift = 1014,
Inaccessible = 1015
};
我试图使用他的整数值来访问特定值(这是我无法完成它的地方):
public legende legend = new legende();
item.Action = Enum.Parse(legend, "2"); //random example of what I'm trying to do
答案 0 :(得分:3)
您可以将整数强制转换为枚举类型:
// leg will be legende.Reprise
legend leg = (legende)2;
如果我正确地理解你Action是一个字符串,那么你可以在枚举值上调用ToString()
;这将返回"Reprise"
:
item.Action = leg.ToString();
或
item.Action = ((legende)2).ToString();
或者当你最终做的时候:
item.Action = Convert.ToString((legende)2);
如果legende
有两个或更多成员共享整数值2
,那么这将为您提供第一个。{1}}。
"指数"不是正确的用语; "整数值"会更好。
答案 1 :(得分:2)
如果您真的想使用 Scanner sc = new Scanner(System.in);
ArrayList<String[]> stats = new ArrayList<>(); //initialize a container to hold all the stats
System.out.println("please enter match results:");
while(sc.hasNextLine())
{
String input = sc.nextLine();
String[] results = input.split(" : ");
if(results.length == 4)
{
stats.add(results);
}
else if(input.equals("stop"))
break;
else
System.out.println("Error reading input");
}//end of while
for(int i = 0; i < stats.size(); i++)
{
try{
System.out.println(stats.get(i)[0] + " vs " + stats.get(i)[1] + " : " +
Integer.valueOf(stats.get(i)[2]) + " - " + Integer.valueOf(stats.get(i)[3]));
}catch (Exception e) {
//do nothing with any invalid input
}
}
,
please enter match results:
r : b : 5 : 4
r : c : 7 : 10
j : g : 3 : 9
stop
r vs b : 5 - 4
r vs c : 7 - 10
j vs g : 3 - 9