>我有一个文本文件,看起来像这样:
1
2 3
4 5
6 7
我想要 2 个字符串,它们是同一行的值。例:
字符串s1 将为 2,字符串 s2 将为 3
我试过这样:
File file = new File("e:\read.txt");
if (file.exists()){
FileReader fr = new FileReader(file);
LineNumberReader ln = new LineNumberReader(fr);
while (ln.getLineNumber() == 0){
s=Integer.parseInt(ln.readLine());
System.out.println(s);
}
DisjointSetLinkedList dsj=new DisjointSetLinkedList();
while(ln.getLineNumber()>0)
{
String [] tokens = ln.readLine().split(" ");
s1=tokens[0];
System.out.println( s1);
}
我必须在同一行上的 2 个字符串之间建立联合:
我认为这样更容易:
try {
File file = new File("numbers.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine())!= null) {
String[] tokens = line.split("\s");
System.out.println(Arrays.toString(tokens));
}
} catch (Exception e) {
e.printStackTrace();
}
将第二个循环更改为:
String line = null;
while ((line = ln.readLine()) != null) {
String[] tokens = line.split(" ");
String s1 = tokens[0];
String s2 = tokens[1];
System.out.println("s1 = " + s1 + " s2 = " + s2);
}
否则,在尝试访问最后一行时,您将遇到NullPointerException
ln.readLine()
.
您也不需要while loop
阅读第一行,只需阅读一次即可。
如果你有token[0]作为整个第一行,你可以像这样联合
for(int i=2; i<token.length;i+2)
System.out.println("UNION: "+Union(token[i-2], token[i]));