如何在执行split()后在数组中存储值?

时间:2017-01-08 06:42:05

标签: java arrays split

我有一个名为fractions.txt的txt文件,其中包含一些分数。我不知道数据的大小。我需要拆分分子和分母并为它们制作两个数组。例如,6/7和5/4位于fractions.txt中。我需要两个数组,如[]和b []。然后a [0] = 6,a [1] = 5,b [0] = 7,b [1] = 4。怎么做?

import java.util.Scanner;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.util.*;
public class Fraction2
{

public static void main(String[] args){
    Scanner inputStream = null;
    PrintWriter outputStream = null;
    try{
    inputStream = new Scanner( new FileInputStream ("fractions.txt"));
    outputStream = new PrintWriter (new FileOutputStream("terminal.txt"));
    }
    catch (FileNotFoundException e){
    System.out.println("File not found.");
    System.exit(0);
    }
    String data;
    while (inputStream.hasNextLine()){
        data = inputStream.nextLine();
        String parts[] = data.split("/");

    }


    outputStream.close();
    inputStream.close();

}
}

3 个答案:

答案 0 :(得分:1)

如果您不确定文本文件中有多少分数,我会使用position:'absolute'来存储每个变量。

flex: 0

然后在从文本文件中读取数据时:

ArrayList

使用ArrayList,您可以根据需要存储基本上尽可能少的分数。

答案 1 :(得分:0)

只需使用2个列表

List<> numerators = new ArrayList<String>();
List<> denominators = new ArrayList<String>();
while (inputStream.hasNextLine()){
    data = inputStream.nextLine();
    String parts[] = data.split("/");
    numerators.add(parts[0]);
    denominators.add(parts[1]);
}

然后,如果必须,可以将它们转换为数组。

答案 2 :(得分:0)

我建议使用像这样的价值对象:

class RationalNumber {
    private final int numerator;
    private final int denominator;
    // add getters and a constructor that takes both values as parameters
}

然后,您可以创建此类型的实例,并将其存储在ArrayList

之类的内容中
List<RationalNumber> numbers = new ArrayList<>(); // defined outside cycle
// ...
numbers.add(new RationalNumber(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]));