【发布时间】:2019-08-21 03:24:37
【问题描述】:
我正在尝试构建一个 TIC-TAC-TOE 游戏。为此,我使用了一个二维字符串数组。我宣布它为全球性的。我不得不在某个时间点更新下标。但是出了点问题,我不知道是什么。谁能告诉我出了什么问题。
String[][] a={{" "," "," |"," "," "," |"," "," "," ",},
{" "," a "," |"," "," b "," |"," "," c "," ",},
{"___","___","__|","___","___","__|","___","___","___"},
{" "," "," |"," "," "," |"," "," "," ",},
{" "," d "," |"," "," e "," |"," "," f "," ",},
{"___","___","__|","___","___","__|","___","___","___"},
{" "," "," |"," "," "," |"," "," "," ",},
{" "," g "," |"," "," h "," |"," "," i "," ",},
{" "," "," |"," "," "," |"," "," "," ",}};
int[] b={1,1,1,1,1,1,1,1,1};
public void printer(int a,String b)
{
String[][] d={{" "," "," |"," "," "," |"," "," "," ",},
{" "," a "," |"," "," b "," |"," "," c "," ",},
{"___","___","__|","___","___","__|","___","___","___"},
{" "," "," |"," "," "," |"," "," "," ",},
{" "," d "," |"," "," e "," |"," "," f "," ",},
{"___","___","__|","___","___","__|","___","___","___"},
{" "," "," |"," "," "," |"," "," "," ",},
{" "," g "," |"," "," h "," |"," "," i "," ",},
{" "," "," |"," "," "," |"," "," "," ",}};
String c=" X ";
if(a==1)
{ c=" X ";
}
if(a==2)
{ c=" O ";}
switch(b)
{
case "a":
if(b[0]==1)
{ a[1][1]=c;
b[0]=(c.compareTo("X")==1)?-1:0;break;}
case "b":
if(b[0]==1){
a[1][4]=c;
b[1]=(c.compareTo("X")==1)?-1:0;break;}
case "c":
if(b[0]==1){
a[1][7]=c;
b[2]=(c.compareTo("X")==1)?-1:0;break;}
case "d":
if(b[0]==1){
a[4][1]=c;
b[3]=(c.compareTo("X")==1)?-1:0;break;
}
case "e":
if(b[0]==1)
{a[4][4]=c;
b[4]=(c.compareTo("X")==1)?-1:0;break;
}
case "f":
if(b[0]==1){
a[4][7]=c;
b[5]=(c.compareTo("X")==1)?-1:0;break;
}
case "g":
if(b[0]==1){
a[7][1]=c;
b[6]=(c.compareTo("X")==1)?-1:0;break;
}
case "h":
if(b[0]==1){
a[7][4]=c;
b[7]=(c.compareTo("X")==1)?-1:0;
break;}
case "i":
if(b[0]==1){
a[7][7]=c;
b[8]=(c.compareTo("X")==1)?-1:0;break;
}
编译器不断给出错误为array expected,but java.lang.String found。我提供了更大的代码,所以有人可以调查一下吗?
java中是否允许用字符串更新字符串数组的下标? 我在 switch-case 语句中使用字符串是否出错了?
(我对面向对象编程了解不多。我是这个领域的新手)。
如果是字符串数组
a[7][7]=some string value
错误是array required but integer found
但在整数数组的情况下
b[4]=some integer value
错误是array required but string found
我没有得到这个。
【问题讨论】:
-
某处你正在使用一个字符串,而你应该使用一个数组。如果您发布minimal reproducible example,可能有人可以告诉您在哪里。
-
"a" 是一个字符串。让我们看看你的整个 switch 语句
-
大多数编译器(尤其是在 IDE 中)会告诉您发生错误的行号和列号。如果您希望我们提供帮助,您需要向我们展示足够多的代码来诊断问题。
-
只是猜测,但您是否希望您的
break语句在您的if块之外,以便每个case与下一个正确分开? -
b[]是一个 integer 数组,a[]是一个 String 数组。我不能更新 的下标吗带有 string. 的字符串数组