2015-04-25 3 views
0

Что я делаю неправильно в коде, читая String. Пусть следующий String передается как layout:Чтение строки из файла

String m = "..z\n"+ 
      "...\n"+ 
      "...\n"+ 
      "...\n"+ 
      "z..\n"+ 
      ""; 

Мой метод должен возвращать один и тот же результат, но он не возвращает мне ничего, это не Принг ничего. Пожалуйста, не предлагайте использовать StringBuilder или smth. Может, помогите мне с этим?

public static Shape makeShape(String layout,char displayChar) 
    { 
     Shape result; 
     int height = 0; 
     int width = 0; 
     Scanner data = new Scanner(layout); 
     char[][] temp; 
     while(data.hasNextLine()) 
     { 
      String line = data.nextLine(); 
      height = line.length(); 
      width++; 
     } 
     temp = new char[height][width]; 

     Scanner data2 = new Scanner(layout); 
     while(data.hasNextLine()) 
     { 
      String line2 = data.nextLine(); 
      if(line2.charAt(0) == '.' && line2.charAt(width) == '.') 
       throw new FitItException("Empty borders!"); 

      else { 

       for (int r = 0; r < height; r++) 
        for (int c = 0; c < width; c++) { 
         //System.out.println(line2.charAt(c)); 

         if (temp[r][c] == '.') { 
          temp[r][c] = displayChar; 
         } 
         System.out.println(line2.charAt(temp[r][c])); 

        } 
      } 
     } 
     result = new CreateShape(height, width, displayChar); 
     return result; 
    } 

ответ

0

Учитывая код и строку выше ширины будет 5 или 6. Ни одна строка не более чем 3, так line2.charAt(width) будет сгенерировано исключение?

1

Подсказка: смотрите тщательно на этих двух линиях:

Scanner data2 = new Scanner(layout); 
    while(data.hasNextLine()) 

Вы видите что-то неправильно с ... по ... вариабельных ... имена ...?

Смежные вопросы