我在Groovy中很新。 基本上我加载一个文本文件,然后我需要在一行(实际上是第6行)获得一个特定的值。
这条线就像:
STATIC_ASSERT(VERSION == 888888, "blablabla");
我需要获得888888
值。
我发现了一种使用多重拆分的方法,但这很难看。
我也想到使用类似的东西:
line.substring(ind+"VERSION ==".length(), line.length()-10).trim();
但“blablabla”长度可以改变..
谢谢。
编辑:它使用像这样的硬编码字符串。
但是当我尝试从文件中运行它时,我收到了这个错误:
test' is failed: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script1516208488151762512206.groovy: 4: expecting '}', found '' @ line 4, column 69.
ne.contains('VERSION ==')
^
1 error
这是我的代码:
${groovy:
String Ver
def file = new File("C:\\test.cpp")
def data = file.filterLine { line ->
line.contains('VERSION ==')
}
Ver = data.split("==")[1].split(",")[0].trim()
logger.info(Ver)
}
- 我也试过这样的事情:
${groovy:
String Ver
def file = new File("C:\\test.cpp")
while ((line = file.readLine())!=null)
{
int ind = line.indexOf("VERSION ==")
if (ind >= 0)
{
Ver = line.split("==")[1].split(",")[0].trim()
}
}
logger.info(Ver)
}
但我得到同样的奇怪错误:
expecting '}', found '' @ line 9, column 58.
("==")[1].split(",")[0].trim()
^
1 error
:(
答案 0 :(得分:0)
您执行以下操作:
A