我必须将双引号之间的所有逗号替换为一个点。 我正在尝试使用replace和replaceAll Java的方法来做到这一点。但是我仍然没有解决问题。 有人可以帮我吗?
编辑: 我必须手动将csv文件解析为对象。因此,我尝试对每个输入行进行字符串拆分,但是其中一个数字的内部带有逗号,因此我获取的数据超过了拆分所需的数据。 示例:我必须拆分此字符串。
“”“” LASER MEDIA SOCIETA'COOPERATIVA“”“,CNF146010,FM(S),PIAZZA UMBERTO I-PISTICCI,MT,40N2323,16E3328,383 ,,” 99,1“,CITY RADIO,” H:- -V:32 dBW“,0.0
请注意,在我遇到麻烦之前,我有“ 99,1”和。
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:对于输入字符串:“”
答案 0 :(得分:0)
您将很难用单个replaceAll来完成它,或者根据需要确定对引号来替换。最好的选择是匹配引号对,并在组中使用replaceAll来将逗号更改为句号。
import settings
class MySpider(Spider):
name = 'my_spider'
custom_settings = dict(settings.main_settings)
local_settings = {
'FEED_EXPORT_FIELDS': ["url"],
'FEED_FORMAT': 'csv',
'FEED_URI': './output/phase3.csv'
}
custom_settings.update(local_settings)