1

我有一个包含很多数字的列表,例如:

1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
...

如何逐行提取它们并进行一些计算?类似(伪代码):

def f = new File("data.txt")
f.eachLine() {
    println(it.findAll( /\d+/ )*.toInteger()*2)
}

我需要去掉逗号和空格。

4

4 回答 4

1

这个怎么样?

def fileContent = new File('data.txt').text
def matches = fileContent =~ /\d+/
matches.each {
    println new Integer(it)*2
}

2
4
6
8
10
12
14
16
18
20
于 2013-11-12T03:33:56.957 回答
1

这个怎么样:

file.splitEachLine(/,\s+/){
        it.each(){
                println it.replace(/,/,'').toInteger() * 2
        }
}

如果文件在行尾没有逗号,则不需要替换。

于 2013-11-12T03:49:04.613 回答
0

您可以使用扫描仪从文件中读取所有数据。是链接

于 2013-11-12T03:20:26.760 回答
0

这是一个可以帮助的人。我仍然相信可能有更好的方法:

def list = []
new File('data.txt').eachLine{
    list << it.replaceAll(/,/, '')
}

assert list*.replaceAll('\\s+', "")*.toInteger() == [12345, 678910]
//or
assert list.collect{it.replaceAll('\\s+', "").toInteger()} == [12345, 678910]
于 2013-11-12T03:46:29.200 回答