我有一个名为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();
}
}
答案 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]));