2017-08-20 70 views
-1
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); 
    } 
} 

嘿,我在if语句中传递了像“grid [0] [0] =='p'”这样的几个条件,就像你在代码,其中网格是一个二维数组,p是一个字符,但我得到的错误“表达式的类型必须是数组类型,但它解析为字符串”。我一直试图弄清楚这一点,但我还没有找到任何解决方案。 注:我是新来的Java和我试图提高自己。我在这里先向您的帮助表示感谢。类型表达式必须是数组类型,但它解析为字符串

+0

“p”是什么类型? –

+0

“网格”的类型是什么? –

+2

你的代码甚至没有编译。首先:在main()中,'grid'被声明为一个int数组。但是你的子方法的形式参数需要一个String数组。第二:在你的子方法中,你引用String数组,因为它将是一个两个二维数组的Character。 – Heri

回答

0

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

相关问题