gpt4 book ai didi

java - 需要帮助解析 Java 中的字符串

转载 作者:行者123 更新时间:2023-12-04 06:47:01 25 4
gpt4 key购买 nike

我正在用 Java 读取 csv 文件,并且根据给定行上字符串的格式,我必须对它做一些不同的事情。 csv 文件中包含的三种不同格式是(使用随机数):

833
“79、869”
“56-57、568”

如果它只是一个数字 (833),我想将它添加到我的 ArrayList。如果是用逗号分隔并用引号括起来的两个数字(“79, 869)”,我想解析出两个数字中的第一个(79)并将其添加到ArrayList中。如果是用引号括起来的三个数字(前两个数字用破折号隔开,第三个数字用逗号[“56-57, 568”],那么我想解析出第三个数字(568)并添加它到 ArrayList。

我在使用 str.contains() 来确定给定行上的字符串是否包含破折号时遇到问题。谁能给我一些帮助?这是我到目前为止所拥有的:

private static void getFile(String filePath) throws java.io.IOException {
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String str;

while ((str = reader.readLine()) != null) {

if(str.endsWith("\"")){
if (str.contains(charDash)){
System.out.println(str);
}
}

}

}

谢谢!

最佳答案

我建议使用实际上采用字符而不是字符串的 indexOf 版本,因为这种方法要快得多。 (这是一个简单的循环,没有嵌套循环。)

IE。

  if (str.indexOf('-')!=-1) {
System.out.println(str);
}

(注意单引号,所以这是一个字符,而不是一个字符串。)

但是,您必须拆分该行并解析各个值。目前,您正在测试整行是否以引号结尾,这可能不是您想要的。

关于java - 需要帮助解析 Java 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614291/

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