Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带可能字符串的Groovy拆分字符串_Java_Arrays_Groovy_Split - Fatal编程技术网

Java 带可能字符串的Groovy拆分字符串

Java 带可能字符串的Groovy拆分字符串,java,arrays,groovy,split,Java,Arrays,Groovy,Split,我正在使用groovy解析一个文件中的数组,该文件需要使用groovy拆分为一个数组 问题是使用的分隔符“”位于“一”字段中,因此无法正确应用拆分命令。输出将使用不同的分隔符(例如“|”) < P> > Groovy 分割(“?”)函数< /> >将字段视为单个字符串文字? 通常情况下,regexp或split乍一看就可以工作,然后 一旦数据显示它的真实面目,它就会可怕地失败。因此,一个数据库中有许多数据格式 正确的解析器通常是安全的路由,对于CSV也是如此 然后是 通常只是一点点的实验,你就可

我正在使用groovy解析一个文件中的数组,该文件需要使用groovy拆分为一个数组

问题是使用的分隔符“”位于“一”字段中,因此无法正确应用拆分命令。输出将使用不同的分隔符(例如“|”)


< P> > Groovy <代码>分割(“?”)函数< /> >将字段视为单个字符串文字? 通常情况下,regexp或split乍一看就可以工作,然后 一旦数据显示它的真实面目,它就会可怕地失败。因此,一个数据库中有许多数据格式 正确的解析器通常是安全的路由,对于CSV也是如此

然后是 通常只是一点点的实验,你就可以开始了。例如

@Grab(group='de.siegmar', module='fastcsv', version='1.0.3')
import de.siegmar.fastcsv.reader.*

def data = '''ELEMENT 1-01,"X0185-CX2F-01-PW(SATop,20211,10.42.81.0)",2020-02-18 09:00:00,15,0.00,0.00,0.00,0.00,0.00,0,0,0'''
def csvReader = new CsvReader()
try (def csvParser = csvReader.parse(new java.io.StringReader(data))) {
    def row = csvParser.nextRow()
    assert row.getField(1)=='X0185-CX2F-01-PW(SATop,20211,10.42.81.0)'
}
如果你不相信,想想你将面临的下一个问题:

  • 换行符
  • 引用单元格内
当然——如果您想解析CSV,请使用CSV解析器(或使用您自己的解析器)。CSV解析器(这是您所帮助的)无法通过简单的
拆分(“,”
)实现,这正是您刚才概述的原因。
@Grab(group='de.siegmar', module='fastcsv', version='1.0.3')
import de.siegmar.fastcsv.reader.*

def data = '''ELEMENT 1-01,"X0185-CX2F-01-PW(SATop,20211,10.42.81.0)",2020-02-18 09:00:00,15,0.00,0.00,0.00,0.00,0.00,0,0,0'''
def csvReader = new CsvReader()
try (def csvParser = csvReader.parse(new java.io.StringReader(data))) {
    def row = csvParser.nextRow()
    assert row.getField(1)=='X0185-CX2F-01-PW(SATop,20211,10.42.81.0)'
}