如何将txt文件的一行拆分为不同的变量?

时间:2015-10-22 17:59:20

标签: java arrays string bufferedreader filereader

我有一个类似这样的文本:

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;
            }
        }               
    }
}

2 个答案:

答案 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]);
              }
        }               
 }
 }