-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
感谢您的帮助。
你的程序应该如何判断结果应该是'0 1 10 0' ...还是'0 1 1 0 0'?似乎你应该以不同的方式格式化你的文本文件。 – nhouser9
这是一个序列,前两个数字是v1和v2,第三个数字是连接顶点的边缘的代价 –
@SantiagoAmbrosetti问题是,没有办法区分字符串中的数字,如'01100 ... '如果还有数字超过一位数字。 – QBrute