type表达式必须是数组类型,但它已解析为字符串

时间:2017-08-20 16:56:32

标签: java arrays string 2d

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {
static void displayPathtoPrincess(int n, String [] grid){
    char p;
    if(grid[0][0]=='p')
    {
            for(int i=0;i<(n-1)/2;i++)
            {
                System.out.println("UP\nLEFT\n");
            }
    }
    else if(grid[0][n-1]=='p')
    {
        for(int i=0;i<(n-1)/2;i++)
        {
                System.out.println("UP\nRIGHT\n");
        }
    }
    else if(grid[n-1][0]=='p')
    {
        for(int i=0;i<(n-1)/2;i++)
        {
            System.out.println("DOWN\nLEFT\n");
        }
    }
    else if(grid[n-1][n-1]=='p')
    {
        for(int i=0;i<(n-1)/2;i++)
        {
            System.out.println("DOWN\nRIGHT");
        }
    }
  }
public static void main(String [] args) {
        Scanner in = new Scanner(System.in);
        int m;
        m = in.nextInt();
        int grid[] = new int[m];
        for(int i = 0; i < m; i++) {
            grid[i] = in.nextInt();
        }

    displayPathtoPrincess(m,grid);
    }
}
嘿,我通过了几个条件,比如&#34; grid [0] [0] ==&#39; p&#39;&#34;你可以在代码中看到if语句,其中grid是一个二维数组而p是一个字符,但我得到了错误&#34;表达式的类型必须是一个数组类型但是它解析为string&# 34 ;.我一直试图弄清楚这一段时间,但我还没有找到任何解决方案。 注意:我是java的新手,我正在努力提高自己。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

参数网格的类型是一维字符串数组。但是你正在访问它,好像它是一个二维char数组。您应该通过比较String.charAt(position)

来更改实施