2017-02-23 16 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); 
} 

最初の行は、容量と第1頂点およびエッジのコストである

5 
0110025032143238 

アルコス.txtファイルを。


私はArcos.txtはあなたの助けのために、この

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

おかげのように読み取ることができるようにはBufferedReader.readLine()。スプリット(」「)を使用する方法を知りたいです。

+4

あなたのプログラムは、結果が '0 1 10 0' ...または' 0 1 1 0 0'であるべきかどうかをどのように判断するでしょうか?テキストファイルの書式を別にする必要があるようです。 – nhouser9

+0

これはシーケンスです。最初の2つの数字はv1とv2で、3番目の数字は頂点をつなぐエッジのコストです –

+0

@SantiagoAmbrosetti問題は、文字列の数字を '01100 ...のように区別することはできません'もし1桁以上の数字があるならば。 – QBrute

答えて

5

Splitはあなたが混乱していると思います。

public String[] split(String regex) - この文字列を、指定された正規表現に一致するように分割します。あなたが探しているのは次のとおりです:

for (int i = 0;i < str.length(); i++){ 
    System.out.println(str.charAt(i)); 
} 
関連する問題