如何在Groovy中检查接收到的文件中的前6个位置是否与第一行或第二行匹配
我想在groovy中检查第1行或第2行的前6个字符是否与文本“ABCDEFG”匹配。我将如何在Groovy中实现这一点如何在Groovy中检查接收到的文件中的前6个位置是否与第一行或第二行匹配,groovy,Groovy,我想在groovy中检查第1行或第2行的前6个字符是否与文本“ABCDEFG”匹配。我将如何在Groovy中实现这一点 def testfile = ''' FEDCBAAVM654321 ABCDEFMVA123456 ''' if ( testfile[0..6].equals("ABCDEF") ) { // First line starts with ABCDEF } if ( testfile.tokenize("\n").get(1)[0..6].equals("ABC
def testfile = '''
FEDCBAAVM654321
ABCDEFMVA123456
'''
if ( testfile[0..6].equals("ABCDEF") ) {
// First line starts with ABCDEF
}
if ( testfile.tokenize("\n").get(1)[0..6].equals("ABCDEF") ) {
// Second line starts with ABCDEF
}
它应该与上面类似,或者如果可能,可以在一行中完成测试。您可以使用:
def testfile = '''FEDCBAAVM654321
|ABCDEFMVA123456
'''.stripMargin()
testfile.tokenize( '\n' ) // split on newline
.take( 2 ) // take the first two lines
.every { it.startsWith( 'ABCDEF' ) } // true if both start with ABCDEF
或
在您的解决方案中,您会说“如果两者都以ABCDEF开头,则为true”。但我希望它是真的,如果第1行或第2行匹配ABCDEF。这也会过去吗?或者只有当两行都以ABCDEF开头时才通过?@markdark ahhh抱歉,添加了使用
any
的第二种方法,如果其中一行(或两行)都以ABCDEF开头,则该方法为真:-)
testfile.tokenize( '\n' ) // split on newline
.take( 2 ) // take the first two lines
.any { it.startsWith( 'ABCDEF' ) } // true if either or both start ABCDEF