2017-10-16 91 views
-1

在增加了循環,我++是不增加至下一個值,任何人都可以幫助我在此...For循環未在Java中

import java.io.*; 

public class MyClass { 

    public static void main(String args[]) throws Exception { 

     try{ 
      String splitBy = ","; 

      BufferedReader br = new BufferedReader(new FileReader("test.csv")); 

      String line; 

      while((line = br.readLine()) !=null){ 

       String[] b = line.split(splitBy); 


       for(int i=1;i<b.length;i++){ 

        for(int j=1;!b[j].equals('\n');j++){ 

         System.out.println(i+ " " +b[j]+ " " +(b[j]+i)); 

        } 

       } 

      } 

      br.close(); 

     } 
     catch(ArrayIndexOutOfBoundsException a){ 
     } 
    } 

} 

CSV文件:

no,a,b,c,d 
1,a1,b1,c1,d1 
2,a2,b2,c2,d2 
3,a3,b3,c3,d3 
4,a4,b4,c4,d4 
5,a5,b5,c5,d5 

所需的輸出:

1 a a1 
1 b b1 
1 c c1 
1 d d1 
2 a a2 
2 b b2 
2 c c2 
2 d d2 
... 
+3

我建議尋求幫助,然後再嘗試調試這個自己 - http://www.vogella.com/tutorials/EclipseDebugging/article.html是如何解決這個問題的例子。基本上,您可以在'for'循環中設置一個斷點並在運行時檢查變量,以瞭解爲什麼邏輯不能按預期工作。調試是成爲一個更好的程序員的巨大方面,所以你不妨儘早學習! – WOUNDEDStevenJones

+0

b是字符串的一維數組,但是它是一個二維字符數組。您需要先選擇該行,然後選擇該字符,如b [i] [j] – Novaterata

+2

您是否考慮實際修復或至少輸出異常,而不是將其丟棄? – tnw

回答

0

的readLine()沒有任何行終止字符\線的BufferedReader返回字符串的方法n或\ r 如果要讀取該分割線,直到最終項目可以更改,請在內部循環中使用j < b.length而不是!b [j] .equals('\ n')

import java.io. *;

公共MyClass類{

public static void main(String args[]) throws Exception { 

    try{ 
     String splitBy = ","; 

     BufferedReader br = new BufferedReader(new FileReader("test.csv")); 

     String line; 

     while((line = br.readLine()) !=null){ 

      String[] b = line.split(splitBy); 


      for(int i=1;i<b.length;i++){ 

       for(int j=1;j<b.length;j++){ 

        System.out.println(i+ " " +b[j]+ " " +(b[j]+i)); 

       } 

      } 

     } 

     br.close(); 

    } 
    catch(ArrayIndexOutOfBoundsException a){ 
    } 
} 

}

+0

任何人都可以將上面的java代碼轉換爲javascript –