Я пробовал в Интернете помощь с этим, но я не могу найти его, поэтому я прибегаю к публикации.Чтение фракций в txt-файле java
У меня есть текстовый файл, который отформатирован как этот
1/2 0 1/6 6/11 1/6 2/10
мне нужно прочитать каждый из этих раздельных фракций и ввода числитель и знаменатель в функции BigFraction (num, denom).
Я звоню читателю и вывожу его как строку. Затем я разбился на пробелы, чтобы получить отдельные дроби в виде строк введите их в мой вспомогательный метод, strToBF, , который разбивается на форвард-люк и вводит числитель и знаменатель.
, но он не работает, любая помощь будет принята с благодарностью
мой основной метод
String file = fileToString(fileName);
file.replaceAll("(.*)\\/(.*)", "a");
String[] splitFile = file.split(" ");
BigFraction conditionA = stringToBF(splitFile[0]);
BigFraction c1A = stringToBF(splitFile[1]);
BigFraction c2A = stringToBF(splitFile[2]);
ConditionalTwoCoinChannel CTCCA = new ConditionalTwoCoinChannel(conditionA, new TwoCoinChannel(c1A, c2A));
BigFraction conditionB = stringToBF(splitFile[3]);
BigFraction c1B = stringToBF(splitFile[4]);
BigFraction c2B = stringToBF(splitFile[5]);
ConditionalTwoCoinChannel CTCCB = new ConditionalTwoCoinChannel(conditionB, new TwoCoinChannel(c1B, c2B));
List<ConditionalTwoCoinChannel> outputList = new ArrayList<ConditionalTwoCoinChannel>();
outputList.add(CTCCA);
outputList.add(CTCCB);
return outputList;
и мои два вспомогательных методов
private static String fileToString(String file)
throws FileNotFoundException, IOException {
BufferedReader fileReader = new BufferedReader(new FileReader(file));
StringBuilder sBuilder = new StringBuilder();
String fileLine = fileReader.readLine();
try {
while (fileLine != null) {
sBuilder.append(fileLine);
sBuilder.append(" ");
fileLine = fileReader.readLine();
}
} catch (FileNotFoundException e1) {
throw new RuntimeException("file not found");
} catch (IOException e2) {
throw new RuntimeException("Input Error");
}
finally {
fileReader.close();
}
return sBuilder.toString();
private static BigFraction stringToBF(String str){
if (strToInt(str) == 0) {
return BigFraction.ZERO;
}
else {
String[] strSplit = str.split("(.*)a(.*)");
int numerator = strToInt(strSplit[0]);
int denominator = strToInt(strSplit[1]);
return new BigFraction(numerator, denominator);
}
}
Можете ли вы представить свой полный код с классами, так что отладка может быть сделано. –
как я могу загрузить все это? Полный код, который я могу сделать, но есть 9 файлов классов –