2016-07-14 118 views
-6

在下面的代碼中,我試圖將兩行中分別稱爲「Opgave1.txt」的文本文件的每一行分開。第一個單詞是「oplossingWoord」,該行的其餘部分排列在「beschrijving」陣列中。代碼的那部分起作用。Try/catch不會運行完整代碼

但我希望將數組「oplossingWoord」轉換爲字符數組列表「oplossingLettersLijst」的第二部分不運行。我不知道爲什麼。最後,我也試着去解決它們,但輸出只是保持空白。希望你們能幫助我。

在此先感謝!

代碼:

public class LetterPyramide { 
public static String[] oplossingWoord = new String[8]; 
public static String[] beschrijving = new String[8]; 
public static List<Character> oplossingLettersLijst = new ArrayList<Character>(); 
public static String OpgaveKeuze; 


public LetterPyramide() { 
    try { 
     File OPGAVEN_FILE = new File("Opgave1.txt"); 
     int oplossingLettersIndex = 0; 
     Scanner s1 = new Scanner(OPGAVEN_FILE); 
     for (int i = 0; i < 8; i++) { 
      String[] line = s1.nextLine().split("\\s+"); 
      oplossingWoord[i] = line[0]; 
      if (line.length > 2) { 
       for (int j = 1; j < line.length; j++) { 
        String oudeWaarde = line[1]; 
        beschrijving[i] = oudeWaarde + " " + line[j]; 
       } 
      } else { 
       beschrijving[i] = line[1]; 
      } 

     } 
     for (int i = 0; i < oplossingWoord.length; i++) { 
      for (int j = 0; j < oplossingWoord[i].length(); j++) { 
       oplossingLettersLijst.add(oplossingLettersIndex, oplossingWoord[i].charAt(j)); 
      } 
     } 

     System.out.println("------------Beschrijving------------"); 
     for (int i = 0; i < beschrijving.length; i++) { 
      System.out.println(i + "." + beschrijving[i]); 
     } 
     System.out.println("----------Oplossingen---------------"); 
     for (int i = 0; i < oplossingWoord.length; i++) { 
      System.out.println("woord " + i + ": " + oplossingWoord[i]); 
      for (int j = 0; j < oplossingLettersLijst.size(); j++) { 
       System.out.print(oplossingLettersLijst.get(j)); 
      } 
     } 

    } catch (Exception e) { 

    } 
} 

文本文件:

LA Opbergplaats 
BAL Speelgoed 
BALE Voetballer 
BLASE Dikkenekkerig 
LOEBAS Boerenkinkel 
SLABOER Groentenkweker 
BROLSATE Slecht vlees op een stokj 

編輯:修正了這一切多虧了堆棧跟蹤。感謝你們!

+4

在你的catch .....添加一個stacktrace ...你爲什麼要把它留空? – logger

+0

爲什麼你甚至有代碼中的try/catch? – Andreas

+0

@ user3659052我補充說。糟糕的解釋了很多。現在,我得到了以下錯誤: java.util.NoSuchElementException:沒有找到行 \t在java.util.Scanner.nextLine(Scanner.java:1540) \t在be.kdg.letterpyramide.model.LetterPyramide。 (LetterPyramide.java:24)。 \t 我是關於這一行的:String [] line = s1.nextLine()。split(「\\ s +」); 它有什麼問題? – CaptainAargh

回答

0

很可能您的代碼會遇到異常。 將e.printStackTrace()添加到您的catch子句中,並再次執行您的應用程序以查看控制檯上打印的內容。

try { 
    // your code 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

這應該有所幫助。

+0

謝謝!我有3個例外。 – CaptainAargh