当前位置: 首页 > 知识库问答 >
问题:

读取txt文件中的分数

裘禄
2023-03-14

我一直在互联网上寻找帮助,但我找不到,所以我求助于发帖。

我有一个txt文件,格式如下

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

共有1个答案

鄂和璧
2023-03-14

这个啊

String[] strSplit = str.split("(.*)a(.*)");

无法拆分“1/2”

尝试

String[] strSplit = str.split("/");
 类似资料:
  • 问题内容: 我会尽量保持清楚,但如果我的问题不完美,请原谅我。我有一个包含多行数据的txt文件。例: 123拉尔夫·玻色20000 200 1 2 256 ed shane 30000 100 2 4 … 我需要按顺序读取每一行,并将其传递回单独类中的方法进行处理。我知道如何通过使用StringTokenizer将每一行分解为元素。 但是,我不确定如何一次读取一行,将元素传递回另一类,然后在完成处

  • 我正试图编写一个程序,读取网络中相互交互的节点列表。它以以下格式写入文本文件: 这表示节点1与节点2和节点3交互,节点2仅与节点3交互,等等。 该程序将能够读取该文件,并将删除任何重复的交互,并且如果我输入节点的名称,将能够向我返回节点与其他节点的交互次数。然而,我对Java非常陌生,我首先尝试让它读入文件,尽管我的代码目前没有读入文件。以下是我迄今为止的代码: 任何关于如何解决此问题的帮助都将不

  • 我有一个txt文件,格式如下: 我想把所有键和它们的值放在我创建的hashMap中。如何让或知道何时拆分冒号(:)处的键和值?:-) 我试过:

  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍

  • 所以,我试图让我的程序从文本文件中读入一个结构数组,它编译得很好,但看起来并没有真正读入值?...我不知道为什么。这是代码的相关部分: 这是txt文件(标题:Planets.txt) 水星120 50 500 12.1 30 2金星120 50 500 29.1 30 6地球120 50 500 32.2 30 7月亮120 15 50 5.3 30 2火星120 50 500 12.2 30 4

  • 问题内容: 比方说,我有一个文件夹,名为和里面我有,和。如何使用Java和读取文件夹中的所有文件(如果可能的话)? 问题答案: 类似于以下内容应该可以帮助您,请注意,为了简单起见,我使用apache commons FileUtils而不是弄乱缓冲区和流…