首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy replaceAll逗号

Groovy replaceAll逗号
EN

Stack Overflow用户
提问于 2012-09-24 09:00:20
回答 1查看 2.3K关注 0票数 0

我对Groovy中的replaceAll特性有一些问题。

我正在做一个CSV解析器任务,并且我正在尝试用空格替换逗号。我找不到实际替换它们的语法,因为每次我运行脚本时,返回的数据中仍然包含逗号。

代码语言:javascript
复制
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文件如下所示: Year、Make、Model

代码语言:javascript
复制
1997,Ford,E350

2000,Mercury,Cougar

headers数组按照它应该的方式工作。当前代码后的输出为

代码语言:javascript
复制
1997,Ford,E350
2000,Mercury,Cougar

我试过了

,“

',‘

/','/

/,/

以及我在网上找到的各种regexp模式。从字面上看,什么都没有起作用。我不知道我错过了什么,我以为replaceAll不会这么难。我已经看过文档了,但不确定如何应用字符串、闭包组合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 09:23:22

注意,replaceAll()方法返回结果字符串,而上面的代码错误地假设lasti正在被修改。

也就是说,考虑下面的代码片段:

代码语言:javascript
复制
String tmp = last[i].replaceAll(/,/,' ')
println tmp

这将会有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12557637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档