gpt4 book ai didi

java - 使用 Groovy 将文本拆分两次

转载 作者:行者123 更新时间:2023-11-30 10:17:51 26 4
gpt4 key购买 nike

我想将此文本联系人分成 3 个部分,用 - 分隔。

在每个部分我们都有:姓名、职务、电话号码和电子邮件。

然后我想用\n分隔每个部分。

def contact = '''name1
Function1
: 1111
: name1@mail.com-name2
Function2
: 2222
: name2@mail.com-name3
Function3
: 3333
: name3@mail.com
'''

我已经试过了:

def contact_part = contact.split('-')
println contact_part[0]
def data = contact_part.split('\n') //line 15
println data[1]

但是我得到了这个错误:

groovy.lang.MissingMethodException: No signature of method: [Ljava.lang.String;.split() is applicable for argument types: (java.lang.String) values: [ ] Possible solutions: split(groovy.lang.Closure), wait(), sort(), init(), tail(), toList() at Script1.run(Script1.groovy:15)

谢谢。

最佳答案

你得到这个异常,因为你在 String[] 上调用了 .split()。第一次拆分创建一个字符串数组,因此下一次拆分必须应用于该数组的每个元素。考虑以下示例:

def contact = '''name1
Function1
: 1111
: name1@mail.com-name2
Function2
: 2222
: name2@mail.com-name3
Function3
: 3333
: name3@mail.com
'''

contact.split('-').each { part ->
def data = part.split('\n').toList()

println "name: ${data[0]}, function: ${data[1]}, number: ${data[2].replace(': ', '')}, email: ${data[3].replace(': ', '')}"
}

我们按- 分割输入字符串,然后每个部分按\n 分割。对于每个拆分部分,我们打印控制台输出如下:

name: name1, function: Function1, number: 1111, email: name1@mail.com
name: name2 , function: Function2, number: 2222, email: name2@mail.com
name: name3, function: Function3, number: 3333, email: name3@mail.com

请注意,我添加了 .replace(': ', '') 来清理数字和电子邮件值。

关于java - 使用 Groovy 将文本拆分两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com