2017-02-23 226 views
-1

我有這樣的代碼:如何使用BufferedReader.readLine()。split(「」)java?

public static void opticFiberApplication() throws IOException { 
    int v1; 
    File file = new File("src/Arcos.txt"); 
    FileReader fr = new FileReader(file); 
    BufferedReader br = new BufferedReader(fr); 
    int capacity = Integer.parseInt(br.readLine()); 
    Graph application = new Graph(capacity); 

    while ((v1 = Character.getNumericValue(br.read())) != -1) { 
     int v2 = Character.getNumericValue(br.read()); 
     int cost = Character.getNumericValue(br.read()); 
     if (application.getVertex(v1) == null) application.addVertex(v1); 
     if (application.getVertex(v2) == null) application.addVertex(v2); 

     application.addEdge(v1, v2, cost); 
    } 
    printGraph(application); 
    prim(application); 
} 

而.TXT阿科斯

5 
0110025032143238 

當第一線是容量,第二個是頂點和邊的成本。


我想知道如何使用BufferedReader.readLine()分裂(」「),以便Arcos.txt可以這樣寫

5 
0 1 10 0 2 5 0 3 2 1 4 3 2 3 8 

感謝您的幫助。

+4

你的程序應該如何判斷結果應該是'0 1 10 0' ...還是'0 1 1 0 0'?似乎你應該以不同的方式格式化你的文本文件。 – nhouser9

+0

這是一個序列,前兩個數字是v1和v2,第三個數字是連接頂點的邊緣的代價 –

+0

@SantiagoAmbrosetti問題是,沒有辦法區分字符串中的數字,如'01100 ... '如果還有數字超過一位數字。 – QBrute

回答

5

我認爲你對Split是什麼感到困惑。

public String[] split(String regex) - 將此字符串拆分爲給定正則表達式的匹配。你在找什麼:

for (int i = 0;i < str.length(); i++){ 
    System.out.println(str.charAt(i)); 
} 
相關問題