如何在Java中拆分此字符串?
我在Java中拆分句子时遇到问题 输入字符串:如何在Java中拆分此字符串?,java,regex,Java,Regex,我在Java中拆分句子时遇到问题 输入字符串: "retinol,\"3,7,11,15-tetramethyl-2,4,6,10,14-hexadecapentaenoic acid\",C034534,81485-25-8,\"Carcinoma, Hepatocellular\",MESH:D006528,Cancer|Digestive system disease,,17270033,therapeutic"; 我想拆分它,得到如下拆分的术语: 视黄醇 3,7,11,15-四甲基-2
"retinol,\"3,7,11,15-tetramethyl-2,4,6,10,14-hexadecapentaenoic acid\",C034534,81485-25-8,\"Carcinoma, Hepatocellular\",MESH:D006528,Cancer|Digestive system disease,,17270033,therapeutic";
我想拆分它,得到如下拆分的术语:
但是,我找不到答案。如评论中所述,由于您正在解析CSV文件,因此需要使用专门为解析CSV而编写的库。否则,你将继续遇到问题,你写的东西“当不同的模式出现时是无用的”(正如你所说) 然而,要解决手头的问题,你只需要在逗号上拆分,忽略引号中的逗号。因此,您可以(从以下位置)执行此操作: 这将为您提供此输出(请注意引号和空行): 视黄醇
“3,7,11,15-四甲基-2,4,6,10,14-十六碳五烯酸”
C034534
81485-25-8
“肝细胞癌”
网格:D006528
癌症|消化系统疾病 17270033
治疗性 您可以根据需要替换引号并忽略空行。此循环将打印问题中要求的精确输出:
int i=1;
for(String s : output){
if(!s.isEmpty()){
System.out.println(i++ + ". " + s.replace("\"", ""));
}
}
输出:
但是,请使用一个库,如注释中所述。,因为您要解析CSV文件,所以需要使用专门为解析CSV编写的库。否则,你将继续遇到问题,你写的东西“当不同的模式出现时是无用的”(正如你所说) 然而,要解决手头的问题,你只需要在逗号上拆分,忽略引号中的逗号。因此,您可以(从以下位置)执行此操作: 这将为您提供此输出(请注意引号和空行): 视黄醇
“3,7,11,15-四甲基-2,4,6,10,14-十六碳五烯酸”
C034534
81485-25-8
“肝细胞癌”
网格:D006528
癌症|消化系统疾病 17270033
治疗性 您可以根据需要替换引号并忽略空行。此循环将打印问题中要求的精确输出:
int i=1;
for(String s : output){
if(!s.isEmpty()){
System.out.println(i++ + ". " + s.replace("\"", ""));
}
}
输出:
但是,请使用一个库,如注释中所述。,因为您要解析CSV文件,所以需要使用专门为解析CSV编写的库。否则,你将继续遇到问题,你写的东西“当不同的模式出现时是无用的”(正如你所说) 然而,要解决手头的问题,你只需要在逗号上拆分,忽略引号中的逗号。因此,您可以(从以下位置)执行此操作: 这将为您提供此输出(请注意引号和空行): 视黄醇
“3,7,11,15-四甲基-2,4,6,10,14-十六碳五烯酸”
C034534
81485-25-8
“肝细胞癌”
网格:D006528
癌症|消化系统疾病 17270033
治疗性 您可以根据需要替换引号并忽略空行。此循环将打印问题中要求的精确输出:
int i=1;
for(String s : output){
if(!s.isEmpty()){
System.out.println(i++ + ". " + s.replace("\"", ""));
}
}
输出:
但是,请使用一个库,如注释中所述。,因为您要解析CSV文件,所以需要使用专门为解析CSV编写的库。否则,你将继续遇到问题,你写的东西“当不同的模式出现时是无用的”(正如你所说) 然而,要解决手头的问题,你只需要在逗号上拆分,忽略引号中的逗号。因此,您可以(从以下位置)执行此操作: 这将为您提供此输出(请注意引号和空行): 视黄醇
“3,7,11,15-四甲基-2,4,6,10,14-十六碳五烯酸”
C034534
81485-25-8
“肝细胞癌”
网格:D006528
癌症|消化系统疾病 17270033
治疗性 您可以根据需要替换引号并忽略空行。此循环将打印问题中要求的精确输出:
int i=1;
for(String s : output){
if(!s.isEmpty()){
System.out.println(i++ + ". " + s.replace("\"", ""));
}
}
输出:
但是,请使用类似的库。您可以在问题中使用pattern/matcher和split发布这些尝试吗?根据@Jerry的评论-您必须发布您尝试的解决方案并询问有关这些问题的问题-您不能要求此场景的用户为您工作。看起来像标准CSV,否?那么您最好使用库为您解析CSV。您最好(从长远来看)尝试一个专门为解析CSV而编写的库,例如。你可以用一种“快速而直接的方式”也许是形式上的,但它可能并不总是适用于你所有的数据。你能用pattern/matcher和split在你的问题中发布这些尝试吗?根据@Jerry的评论-你必须发布你尝试的解决方案并询问quest