2017-08-20 7 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文では、if文で "grid [0] == 'p'コードは、グリッドは2次元配列であり、pは文字ですが、 "式の型は配列型でなければなりませんが、文字列に解決されました"というエラーが表示されます。私は今これを理解しようとしていますが、私は解決策を見いだせませんでした。 注:私はjavaに新しいですし、自分自身を改善しようとしています。事前に助けてくれてありがとう。型式は配列型でなければなりませんが、文字列に変換されています

+0

「p」の種類は何ですか? –

+0

'grid'の種類は何ですか? –

+2

あなたのコードはコンパイルされません。最初:main()の 'grid'はintの配列として宣言されています。しかし、あなたのサブメソッドの仮引数にはStringの配列があります。 2番目:あなたのサブメソッド内では、文字列の2次元配列であるようにStringの配列を参照します。 – Heri

答えて

0

パラメータグリッドのタイプは、1次元文字列配列です。しかし、それは2次元のchar配列のようにアクセスしています。 String.charAt(position)を比較して実装を変更する必要があります。

関連する問題