gpt4 book ai didi

java - 如何存储以逗号分隔的 .txt 文件中的数据,忽略逗号后面的空格

转载 作者:行者123 更新时间:2023-12-01 17:46:28 25 4
gpt4 key购买 nike

我有两个问题。

  1. 因此,.txt 文件如下所示:

1、2、2.0、汽车、3、4,20、房屋、7、8.2、19、电影、3,1、45

我需要将这些数字和单词分开,并将它们放入单独的列表中,但它仅在我使用 .split(", "); 方法时才有效,并且它不会将数字放入在我的号码列表中,逗号后面没有空格。我的代码:

File file = new File(pathToFile); 

br = new BufferedReader(new FileReader(file));

String str;
while ((str = br.readLine()) != null) {

data = str.split(", ");
}

for (String entry : data) {
try {
int number = Integer.valueOf(entry);
numbersList.add(number);
} catch (NumberFormatException e) {

wordsList.add(entry);
}
}

System.out.println(numbersList);
System.out.println(wordsList);

我在某处读到 .split(); 方法会自动忽略空格,但情况似乎并非如此,因为我得到了以下输出:

numbersList - 1, 2, 3, 7, 19, 45

wordsList - 2.0、汽车、4,20、房子、8.2、电影、3,1

  • 我需要帮助将 float 与单词分开。到目前为止,我已经尝试过:

    try {
    int number = Integer.valueOf(entry);
    float decimalNumber = Float.parseFloat(entry);
    numbersList.add(number);
    decimalNumbersList.add(decimalNumber);
    } catch (NumberFormatException e) {

    wordsList.add(entry);
    }

    但是没有成功。完全没有。它只是将普通数字转换为 float 。

  • decimalNumbersList - 1.0、2.0、24.0、18.0、1.0、3.0、20.0、12.0、8.0、12.0

    最佳答案

    对于第一部分,我决定简单地删除空格,然后按 ","进行解析。但也提出了其他好的方法,这些方法也很好。

    为了将 float 与字符串分开,我检查每个数据条目并检查它是否包含 float 分隔符号(“.”)。如果是,请检查它是否为 float 并将其添加到数字列表中。通知numbersListArrayList<Number> .

    public static void main(String[] args) throws Exception {

    File file = new File("path");

    BufferedReader br = new BufferedReader(new FileReader(file));

    String str;
    String[] data = null;
    ArrayList<Number> numbersList = new ArrayList<>();
    ArrayList<String> wordsList = new ArrayList<>();

    //Remove white space and split by comma
    while ((str = br.readLine()) != null) {
    str = str.replaceAll(" ", "");
    data = str.split(",");
    }

    assert data != null;
    for (String entry : data) {

    //check for floats
    if(entry.contains(".")){
    try {
    //Check if we can parse
    float d = Float.parseFloat(entry);
    //Add to numbers list.
    numbersList.add(d);
    } catch (NumberFormatException e) {
    e.printStackTrace();
    }
    //Else, handle the rest
    } else {
    try {
    int number = Integer.valueOf(entry);
    numbersList.add(number);
    } catch (NumberFormatException e) {
    wordsList.add(entry);
    }
    }
    }
    System.out.println(numbersList);
    System.out.println(wordsList);
    }

    关于java - 如何存储以逗号分隔的 .txt 文件中的数据,忽略逗号后面的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610817/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com