无法在Java中读取字符串中的字符

时间:2014-11-07 07:45:45

标签: java arrays string file char

我正在尝试加载包含字符和两个数字的文本文件,这看起来像这样

5 7
++++M++
+  +  +
++   ++
+  ++ +
+X+++++

其中5和7对应于行数和列数。我试图逐行读取,然后将数字转换为数组中的值,但由于某种原因,我甚至无法

     Scanner inputFile = new Scanner(new FileReader(fid));
maze_r = inputFile.nextInt();
maze_c = inputFile.nextInt();
int counter = 0;
   while(inputFile.hasNextLine()){

    rowArray = inputFile.nextLine();
  System.out.print("\n"+rowArray);


     char index;
       for(int ind = 0; ind == (maze_c-1);ind++){

            index = rowArray.charAt(ind);
            System.out.print(index);
            if(index == ' ')
                theMaze[counter][ind] = 0;
            if(index == '+')
                theMaze[counter][ind] = 1;
            if(index == 'M')
                theMaze[counter][ind] = 2;
             if(index == 'X')
                theMaze[counter][ind] = 3;

  }
   }
   System.out.print(Arrays.toString(theMaze));
   }

当我这样做时,它会将行打印为字符,但会为我尝试制作的数组打印一个空格。我不知道我做错了什么,由于某种原因它不会计算while循环中的for循环。当我在循环中编写类似system.out.print的内容时,没有打印出来。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

for循环中的第二个条件是true,以便循环继续:

ind == (maze_c-1) // ⇒ your loop breaks because ind is not equal to the rvalue

应该改为:

ind < maze_c

将其视为“同时”状态。

答案 1 :(得分:0)

for(int ind = 0; ind ==(maze_c-1); ind ++){ 你的循环条件错误,ind ==(maze_c-1)总是为true,所以循环中的代码无法运行,那么System.out.print(Arrays.toString(theMaze))的结果为null < / p>