在第一次出现逗号后返回字符串的子串

时间:2015-03-03 21:23:37

标签: java regex string parsing csv

如何获取此输入CSV文件:

0,1
1,2
3,4
5,6,7
8,10
9,10

并且在第一次出现",&#34之后仅返回每行的子字符串;所以我的输出是:

1
2
4
6,7
10
10

我只能弄清楚在用逗号分割后如何在一定范围内解析字符串,所以我使用string.split(",")[1]返回第一个逗号之后和下一个逗号之前的所有内容但我不能弄清楚如何在第一个逗号后获取所有内容。因此,对于包含多个逗号的输入,我会丢失数据。

5 个答案:

答案 0 :(得分:3)

你可以这样做:

line.substring(line.indexOf(",")+1)

答案 1 :(得分:1)

在第一次出现,之前,有几种不同的方法可以删除所有内容。

  1. 使用该索引查找第一个,substring的索引(位置)。
  2. 这看起来像

    String wantedPart = lineOfText.substring(lineOfText.indexOf(",") + 1);
    

    由于indexOf会返回,本身的索引,因此您需要添加一个以获取所有内容的索引。


    1. 使用更好的重载,例如String.split(String regex, int limit)。此重载允许您匹配最多limit个子字符串。因此,如果限制为2,它将在找到的第一个,上拆分(并且不再存在)。
    2. 在您的代码中,您可以使用

      String wantedPart = lineOfText.split(",")[1];
      

答案 2 :(得分:1)

如果shell脚本可以,您可以使用cut命令:

-d ','表示使用逗号,-f2-表示使用字段2以后。

Machine:~ donald$ cat file.txt
0,1
1,2
3,4
5,6,7
8,10
9,10
Machine:~ donald$ cat file.txt | cut -d ',' -f2-
1
2
4
6,7
10
10
Machine:~ donald$

答案 3 :(得分:0)

尝试String.indexOf(“,”)等等。

答案 4 :(得分:0)

您可以使用重载拆分方法,该方法允许定义子串的限制。

分裂( “”,1)