我遇到Groovy中的replaceAll功能问题 我正在进行CSV解析器分配,我正在尝试用空格替换逗号。我无法弄清楚实际替换它们的语法,因为每次运行脚本时都会返回数据,但仍包含逗号。
class ActAsCSV {
def headers = []
def contents = []
def read() {
def file = new File('C:/Users/Alex/Desktop/csv.txt')
def lines = file.readLines()
headers = lines[0].split(",")
def last = lines.tail()
def i = 0
while (last[i] != null){last[i].replaceAll(/,(?=([^\"]*\"[^\"]*\")*[^\"]*$)/' ')
println last[i]
i++}
}
}
alex = new ActAsCSV()
alex.read()
CSV文件如下所示: 年份,牌子,型号
1997,Ford,E350
2000,Mercury,Cougar
headers数组按预期工作。当前代码后的输出是
1997,Ford,E350
2000,Mercury,Cougar
我试过了
“,”
','
/','/
/,/
以及我在网上找到的各种正则表达式模式。字面上没有任何效果。我不知道我错过了什么,我假设替换所有人都不会这么难。我查看了文档,但不确定如何应用字符串,闭包组合。
答案 0 :(得分:3)
请注意,replaceAll()
方法返回结果字符串,而上面的代码错误地假定last [i]正在被修改。
那就是说,考虑一下这段代码:
String tmp = last[i].replaceAll(/,/,' ')
println tmp
这会有所帮助。