我有一个类似这样的文本:
Jhon 113
保罗024
大卫094
彼得085
从每行我想要2个变量名称的类型字符串之一和数字的一个int
我编写了这段代码以及它所做的是什么,无论一条线说什么,并把它带到一个名为names的数组,但我想知道如何将这条线分成两个不同的变量。
import java.io.*;
public class Read {
public static void main(String[] args) throws Exception{
FileReader file = new FileReader("test.txt");
BufferedReader reader = new BufferedReader(file);
String names[] = new String[10];
for(int i = 0; i<names.length; i++){
String line = reader.readLine();
if(line != null){
names[i] = line;
}
}
}
}
答案 0 :(得分:0)
您应该使用split()
:
String names[] = new String[10];
int numbr[] = new int[10];
for(int i = 0; i<names.length; i++){
String line = reader.readLine();
if(line != null){
names[i] = line.split(" ")[0];
numbr[i] = Integer.parseInt(line.split(" ")[1]);
}
}
参考:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)
答案 1 :(得分:0)
与在问题中使用单词split一样直观。 String类有一个split函数,用于使用给定参数拆分字符串。
import java.io.*;
public class Read {
public static void main(String[] args) throws Exception{
FileReader file = new FileReader("test.txt");
BufferedReader reader = new BufferedReader(file);
String names[] = new String[10];
int num[] = new int[10];
String lineSplit[] = new String[2];
for(int i = 0; i<names.length; i++){
String line = reader.readLine();
if(line != null){
//splits line using space as the delimeter
lineSplit = line.split("\\s+");
names[i] = lineSplit[0];
num[i] = Integer.parseInt(lineSplit[1]);
}
}
}
}