在java中拆分单词并处理双引号
我有一个CSV文件,我通过文件阅读器读取它。readLine会将CSV文件的第一行作为字符串提供给我 字符串str=1,1,1,“12345”,名称,“猫,狗” 现在逗号(,)是我的delimeter,如果我拆分字符串,它将给我输出 一, 1. 12345 名称 “猫 “狗” 但是,我想知道的不是这个输出,而是如果在“”(双引号)中有一些值;在这种情况下,它应该取完整值(不拆分) 一, 1. 12345 名称 猫,狗试试这个:在java中拆分单词并处理双引号,java,split,Java,Split,我有一个CSV文件,我通过文件阅读器读取它。readLine会将CSV文件的第一行作为字符串提供给我 字符串str=1,1,1,“12345”,名称,“猫,狗” 现在逗号(,)是我的delimeter,如果我拆分字符串,它将给我输出 一, 1. 12345 名称 “猫 “狗” 但是,我想知道的不是这个输出,而是如果在“”(双引号)中有一些值;在这种情况下,它应该取完整值(不拆分) 一, 1. 12345 名称 猫,狗试试这个: String line = "1,1,1,\"12345\",Nam
String line = "1,1,1,\"12345\",Name,\"Cat,Dog\"";
if (line.contains("\"")) {
line = line.replaceAll("(\"\\,|\\,\")|\\,|\"$", " ");
System.out.println(line);
}else {
// code to split the line
}
输出:112345 Name Cat Dog
尝试以下方法:
String line = "1,1,1,\"12345\",Name,\"Cat,Dog\"";
if (line.contains("\"")) {
line = line.replaceAll("(\"\\,|\\,\")|\\,|\"$", " ");
System.out.println(line);
}else {
// code to split the line
}
输出:112345 Name Cat Dog
试试这个
public static void main(String[] args) {
String s = "Sachin,,M,\"Maths,Science,English\",Need to improve in these subjects.";
String[] splitted = s.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
System.out.println(Arrays.toString(splitted));
}
Out put:[Sachin,M,“数学、科学、英语”,这些科目需要提高。]例如 拆分的[0]=Sachin 拆分的[1]=(空字符串) 拆分的[2]=M 拆分[3]=“数学、科学、英语” 分裂的[4]=这些科目需要提高 不需要检查\是否存在。我们正在使用此正则表达式拆分csv。试试这个
public static void main(String[] args) {
String s = "Sachin,,M,\"Maths,Science,English\",Need to improve in these subjects.";
String[] splitted = s.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
System.out.println(Arrays.toString(splitted));
}
Out put:[Sachin,M,“数学、科学、英语”,这些科目需要提高。]例如 拆分的[0]=Sachin 拆分的[1]=(空字符串) 拆分的[2]=M 拆分[3]=“数学、科学、英语” 分裂的[4]=这些科目需要提高
不需要检查\是否存在。我们正在使用此正则表达式拆分csv。您可能希望寻找标准的csv解析器,而不是重新发明轮子。您能告诉我使用csv解析器的人是谁吗?我还没有使用。您可能希望寻找标准的csv解析器,而不是重新发明轮子。您能告诉我使用csv解析器的人是谁吗语法分析器。我还没有用过。