我有一个包含很多数字的列表,例如:
1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
...
如何逐行提取它们并进行一些计算?类似(伪代码):
def f = new File("data.txt")
f.eachLine() {
println(it.findAll( /\d+/ )*.toInteger()*2)
}
我需要去掉逗号和空格。
我有一个包含很多数字的列表,例如:
1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
...
如何逐行提取它们并进行一些计算?类似(伪代码):
def f = new File("data.txt")
f.eachLine() {
println(it.findAll( /\d+/ )*.toInteger()*2)
}
我需要去掉逗号和空格。
这个怎么样?
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
这个怎么样:
file.splitEachLine(/,\s+/){
it.each(){
println it.replace(/,/,'').toInteger() * 2
}
}
如果文件在行尾没有逗号,则不需要替换。
您可以使用扫描仪从文件中读取所有数据。这是链接
这是一个可以帮助的人。我仍然相信可能有更好的方法:
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]