gpt4 book ai didi

java - 如何使用 split() 来分割一行

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

help!!我想将一行分成一组,如下例所示

"http://data.doremus.org/performance/aa692091-a77c-3ef4-ba47-e1f9596d7b0c ","Solistes d'aujourd'hui, solistes de demain - Festival de Jérusalem, Elena Bashkirova",2009-01-09

int i=0;
while ((CurrentLine = reader1.readLine()) != null) {

String[] tokens = CurrentLine.split("\",");

fichier1[i][0] =tokens[tokens.length-1].split("T"[0];//date

fichier1[i][1] =tokens[tokens.length-2];//titre

fichier1[i][2] =tokens[tokens.length-3];//URI
i++;
}

我用了上面的代码,只是元素2(标题)本身包含逗号读取是错误的

最佳答案

这看起来像逗号分隔值数据,那么为什么不使用 CSV 解析器呢?与http://opencsv.sourceforge.net/您的代码可能如下所示:

String data = "\"http://data.doremus.org/performance/aa692091-a77c-3ef4-ba47-e1f9596d7b0c\",\"Solistes d'aujourd'hui, solistes de demain - Festival de Jérusalem, Elena Bashkirova\",2009-01-09";
CSVParser parser = new CSVParserBuilder().build();
String[] tokens = parser.parseLine(data);
for (String token : tokens){
System.out.println("token = "+token);
}

输出:

token = http://data.doremus.org/performance/aa692091-a77c-3ef4-ba47-e1f9596d7b0c
token = Solistes d'aujourd'hui, solistes de demain - Festival de Jérusalem, Elena Bashkirova
token = 2009-01-09
<小时/>

如果您不想使用外部库,对于这种情况,最简单的解决方案之一是不寻找分割的位置,而是寻找您感兴趣的部分,例如

  • 引号之间的文本,
  • 引号外的非逗号序列。

例如:

String data = "\"http://data.doremus.org/performance/aa692091-a77c-3ef4-ba47-e1f9596d7b0c\",\"Solistes d'aujourd'hui, solistes de demain - Festival de Jérusalem, Elena Bashkirova\",2009-01-09";
Pattern p = Pattern.compile("\"[^\"]+\"|[^,]+");
Matcher m = p.matcher(data);
while(m.find()){
System.out.println("token = "+m.group());
}

输出:

token = "http://data.doremus.org/performance/aa692091-a77c-3ef4-ba47-e1f9596d7b0c"
token = "Solistes d'aujourd'hui, solistes de demain - Festival de Jérusalem, Elena Bashkirova"
token = 2009-01-09

关于java - 如何使用 split() 来分割一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55941272/

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