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

swvgeqrz  于 2023-07-31  发布在  其他
关注(0)|答案(5)|浏览(88)

如何获取此输入CSV文件:

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

字符串
并只返回第一次出现“,”之后的每一行的子字符串,这样我的输出是:

1
2
4
6,7
10
10


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

u59ebvdq

u59ebvdq1#

您可以:

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

字符串

sf6xfgos

sf6xfgos2#

在第一次出现,之前,有几种不同的方法可以删除所有内容。
1.查找第一个,的索引(位置),并使用该索引查找子字符串。
这看起来就像

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

字符串
由于indexOf返回,本身的索引,因此需要添加1以使所有内容都通过它。
1.使用更好的重载,如String.split(String regex, int limit)。此重载允许您匹配最多limit个子字符串。因此,在限制为2个结果的情况下,它将在找到的第一个,上进行拆分,并将其他所有内容留在结果数组的第二个(最后一个)元素中。
在代码中,可以使用

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

pu3pd22g

pu3pd22g3#

如果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$

字符串

1yjd4xko

1yjd4xko4#

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

i5desfxk

i5desfxk5#

如果你想使用split,你可以这样做:
split(/,(.*)/)[1]
这将在第一次出现.*(逗号后跟字符串的其余部分)时拆分。捕获组(括号)将导致分隔符的该部分被放置在数组中。

相关问题