Java 替换字符串中的引号
我必须用点替换双引号之间的所有逗号。 我正试图用replace和replacealljava的方法来实现这一点。但我仍然没有找到解决办法。 有人能帮我吗 编辑: 我必须手动将csv文件解析为对象。所以我尝试对每个输入行进行字符串拆分,但其中一个数字有一个逗号,所以我得到的数据比拆分所需的数据多。 我必须拆分这个字符串 激光媒体协会,CNF146010,FM S,安贝托广场一号-皮斯蒂奇,MT,40N2323,16E3328383,99,1,城市广播,H:-V:32 dBW,0.0 请注意,我有99,1和之前的、,这会给我带来麻烦Java 替换字符串中的引号,java,regex,string,replace,Java,Regex,String,Replace,我必须用点替换双引号之间的所有逗号。 我正试图用replace和replacealljava的方法来实现这一点。但我仍然没有找到解决办法。 有人能帮我吗 编辑: 我必须手动将csv文件解析为对象。所以我尝试对每个输入行进行字符串拆分,但其中一个数字有一个逗号,所以我得到的数据比拆分所需的数据多。 我必须拆分这个字符串 激光媒体协会,CNF146010,FM S,安贝托广场一号-皮斯蒂奇,MT,40N2323,16E3328383,99,1,城市广播,H:-V:32 dBW,0.0 请注意,我有9
Scanner var = new Scanner(new BufferedReader(new FileReader ("t1.csv")));
ArrayList<Catasto> obj = new ArrayList();
String data = var.nextLine();
String data2 = null;
String full = null;
int j = 0;
while (var.hasNextLine()) {
data = var.nextLine();
data2 = var.nextLine();
full = data + data2;
//full = full.replaceAll("\"*[,]*\"", "."); attempt 1
System.out.println(full);
ArrayList<String> parts = new ArrayList();
String[] parti = full.split(",");
//for (int i = 0; i<parti.length; i++) { this is because I'm trying to change empty string with a null
//if (parti[i] == " ") in order to solve this error: java.lang.NumberFormatException: For input string: ""
// parti[i] = null;
//}
for (int i = 0; i<12; i++) {
parts.add(parti[i]);
}
Catasto foo = new Catasto(parts);
obj.add(foo);
}
var.close();
编辑2:
我已经解决了双引号之间的逗号问题。但是我不知道为什么会出现错误:java.lang.NumberFormatException:对于输入字符串:您将很难使用单个replaceAll或replace来完成,因为您需要确定引号对。最好匹配引号对,并使用replaceAll将逗号改为句号
String input = "\"One,Two,There\",\"Four,Five,Six\"";
Matcher m = Pattern.compile("\"[^\"]*\"").matcher(input);
StringBuffer sb = new StringBuffer();
while(m.find()) {
m.appendReplacement(sb, m.group().replaceAll(",", "."));
}
m.appendTail(sb);
String output = sb.toString(); // "One.Two.There","Four.Five.Six"
您当前的解决方案遇到了什么问题?显示一些代码以了解问题所在wrong@BugsForBreakfast在这里is@Lauqz那个数字格式异常是因为你不能转换成数字,必须做点什么谢谢你Bugs,我解决了它!:谢谢,这是正确的。你能帮我解决上面的第二个问题吗?我真的很挣扎