Java 如何将分数分成两个整数?
我正在开发一个程序,需要从包含分数的外部文件创建一个对象列表。我需要将分子和分母分离成两个独立的整数,而不需要包含“/” 这就是我到目前为止所做的:Java 如何将分数分成两个整数?,java,fractions,Java,Fractions,我正在开发一个程序,需要从包含分数的外部文件创建一个对象列表。我需要将分子和分母分离成两个独立的整数,而不需要包含“/” 这就是我到目前为止所做的: while (fractionFile.hasNextLine()){ num.add(fractionFile.nextInt()); den.add(fractionFile.nextInt()); } 我不知道如何在“/”之前读取num.add,在“/”之后读取den.add 任何帮助都将不胜感激。使用类方法使用
while (fractionFile.hasNextLine()){
num.add(fractionFile.nextInt());
den.add(fractionFile.nextInt());
}
我不知道如何在“/”之前读取num.add,在“/”之后读取den.add
任何帮助都将不胜感激。使用类方法使用所需的模式拆分字符串。使用类方法使用所需的模式拆分字符串。假设文件中有多个分数由令牌分隔(例如行制动器或
;
):
String fraction="1/2";
String []part=fraction.split("/");
num.add(part[0])
den.add(part[1])
String input=“1/2;3/4;5/6”;
字符串标记=“;”
字符串[]currentFraction=null;
最终列表nums=newlinkedlist();
最终列表denoms=newlinkedlist();
for(字符串s:input.split(令牌)){
currentFraction=s.split(“/”);
如果(currentFraction.length!=2)
继续;
nums.add(Integer.parseInt(currentFraction[0]);
add(Integer.parseInt(currentFraction[1]);
}
假设您的文件中有多个分数由标记分隔(例如,线路制动或;
):
String input=“1/2;3/4;5/6”;
字符串标记=“;”
字符串[]currentFraction=null;
最终列表nums=newlinkedlist();
最终列表denoms=newlinkedlist();
for(字符串s:input.split(令牌)){
currentFraction=s.split(“/”);
如果(currentFraction.length!=2)
继续;
nums.add(Integer.parseInt(currentFraction[0]);
add(Integer.parseInt(currentFraction[1]);
}
你能解释一下我是如何做到的吗?你能解释一下我是如何做到的吗?调用split两次并不是我从外部文件读取分数的最有效的方法。如何将第二次拆分发送到den?共享您文件的快照。调用拆分两次并不是从外部文件读取分数的最有效方法。如何将第二次拆分发送到den?共享您文件的快照。我们可以看到包含分数的文件的大纲吗?我们可以看到包含分数的文件的大纲吗?
while (fractionFile.hasNextLine()){
//If file contains
// 1/2
// 2/4
// 5/6
String line = fractionFile.nextLine();
String split[]=line.split("/");
num.add(Integer.parseInt(split[0])); // 1 stored in num
den.add(Integer.parseInt(split[1])); // 2 stored in den
}
String input = "1/2;3/4;5/6";
String token = ";"
String[] currentFraction = null;
final List<Integer> nums = new LinkedList<>();
final List<Integer> denoms = new LinkedList<>();
for (String s : input.split(token)) {
currentFraction = s.split("/");
if (currentFraction.length != 2)
continue;
nums.add(Integer.parseInt(currentFraction[0]));
denoms.add(Integer.parseInt(currentFraction[1]));
}
BufferedReader br = null;
Integer num = 0;
Integer den = 0;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("test"));
while ((sCurrentLine = br.readLine()) != null) {
String [] str = sCurrentLine.split("/");
if(str.length>2)throw new IllegalArgumentException("Not valid fraction...");
num = num+Integer.parseInt(str[0]);
den = den+Integer.parseInt(str[1]);
}
System.out.println(num);
System.out.println(den);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}