我有一个代码,其中switch语句测试的依赖于数组变量:
String shuff = Import.shuffle();
String[] form = new String[95];
for(int i = 0; i < 95; i++)
{
form[i] = Format.shuffle(shuff, i);
}
switch(str)
{
case "a":
x = 6;
break;
case "b":
x = 16;
break;
case "c":
x = 23;
break;
//So on and so forth
}
我想做的是采用数组形式[]并将其用作案例:
String shuff = Import.shuffle();
String[] form = new String[95];
for(int i = 0; i < 95; i++)
{
form[i] = Format.shuffle(shuff, i);
}
switch(str)
{
case form[0]:
x = 6;
break;
case form[1]:
x = 16;
break;
case form[2]:
x = 23;
break;
//So on and so forth
}
但是当我尝试这个时,它会给出错误“case表达式必须是常量表达式”.我想到了解决这个问题的两个方案,但我不知道该如何做.
1.以某种方式在开关盒中使用数组
2.使用某种看起来像这样的方法……
String shuff = Import.shuffle();
String[] form = new String[95];
for(int i = 0; i < 95; i++)
{
form[i] = Format.shuffle(shuff, i);
}
switch(str)
{
case form[0].toString():
x = 6;
break;
case form[1].toString():
x = 16;
break;
case form[2].toString():
x = 23;
break;
//So on and so forth
}
还有办法吗?
Import.shuffle方法采用95行(每行为一个字符)的文本文件并将它们串在一起,Format.shuffle将每个原始行放入单独的数组变量中.
我无法将其转换为if else if链,因为它是一个95 case开关(编辑)