gpt4 book ai didi

java - Groovy:list.pop() 不起作用

转载 作者:行者123 更新时间:2023-12-02 00:33:53 25 4
gpt4 key购买 nike

我有一个带有列表的粘着点。经过一番工作后,我可以生成列表并生成 xml 结果。但在我的列表中是带有制表符或换行符的条目(最后一个条目)

如果我执行脚本,结果如​​下:

[100, 0100045395, Kurzstrasse, 0502028767496, , 8050, 100, Zürich, 05.07.2010, 
100, 0100045395, 0400053113, 0000356988, , TPS, ZL1, 1549820, 02.06.2010,
100, 0100045395, 0400053113, 0000356988, , TPS, ZL1, 1549820, 02.06.2010,
]

首先,我将尝试使用 pop() 删除最后一个换行符但我总是收到这样的消息:

Caught: groovy.lang.MissingMethodException: No signature of method:   Ljava.lang.String;.pop() is applicable for argument types: () values: []
Possible solutions: sum(), dump(), min(), max(), any(), sort()
at auslesenzwei.xmlGenerieren(auslesenzwei.groovy:44)
at auslesenzwei.run(auslesenzwei.groovy:37)

我做错了什么?

代码:

 import groovy.util.CharsetToolkit;
import java.lang.Object

//Generate pathname
//Pfadname generiert für einfacheres ändern des Speicherortes
def pathname = "C:/mySupport-eclipse/trackandtrace.txt"
//Define Error Status
//Error Status definieren für Weiterverabeitung in mySupport
int errorCode = 0
def errorMessage = ""

def linesAsList = []


def bsknr = "0100045395"
//Define new File
//Neue Datei definieren
def file = new File(pathname)

if(!file.exists())
{
errorCode = 1
errorMessage = "File not found"
out_xml = xmlGenerieren()
}
else
{
//Read Roews and look for BSK Number, split after tab
//Zeilen einlesen und nach der BSK Nummer suchen, nach dem Tabulator trennen
def lines = file.filterLine {
line -> line ==~ /.*\t${bsknr}\t.*/

}
//Split the result after tab and enter, give back as String
//Das Ergebnis aufteilen bei Tabulator und Enter und zugleich als String zurückgeben
linesAsList = lines.toString().split('\t|\r')
xmlGenerieren(linesAsList)
//println linesAsList
}

def xmlGenerieren(givenlist) {
def writer = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(writer)
//givenlist.pop()
println givenlist
def listsize = givenlist.size()


//Test if is empty
//Prüfen ob ein Ergebnis gefunden wurde
if (listsize == 0)
{
builder.result()
{
entry(wert:"0")
{
paketnr("(empty)")
}
}
println writer.toString()
errorCode = 0
}
else {


//i = listsize / 8
//println i

}

}

感谢您的帮助

最佳答案

String.split()返回字符串数组,而不是列表。使用String.tokenize() ,或者将 split 的结果转换为类似 linesAsList = lines.toString().split('\t|\r') as List 的列表.

关于java - Groovy:list.pop() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8302124/

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