【问题标题】:My code keeps on showing 'array required but java.lang.String found' when I try to compile it [duplicate]当我尝试编译时,我的代码一直显示“需要数组,但找到了 java.lang.String”[重复]
【发布时间】: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. 的字符串数组

标签: java arrays string bluej


【解决方案1】:

问题是您在函数外部定义了“int[] b”。还有 String b 用于 'printer' 方法。

所以在打印机方法中,b 是一个字符串,但是您尝试将其分配为开关盒中的一个数组。

只要更改以下内容,就可以了。

更改 1:public void printer(int a,**String str**)
变更二:switch(**str**)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多