gpt4 book ai didi

java - 每个字符串后面都占用空间

转载 作者:行者123 更新时间:2023-12-01 09:36:38 24 4
gpt4 key购买 nike

String delimiterStr = "|", line="1231|08062016|4441|10|PayeeName1|REF1";
String ISSUE_UPLOAD_FILE_PATTERN = "(?<=(^|" + delimiterStr + "))(([^\"" + delimiterStr + "]*)|\"([^\"]*)\")(?=($|" + delimiterStr + "))";

List<String> splitString = new ArrayList<String>();
Matcher matcher = Pattern.compile(ISSUE_UPLOAD_FILE_PATTERN).matcher(line);
while (matcher.find()) {
if (matcher.group(3) != null) {//NOPMD,old code
System.out.println(matcher.group(3));
splitString.add(matcher.group(3));
}
}
System.out.println(splitString.size()+"::--->"+splitString);

OutPut :- 12::--->[1231, , 08062016, , 4441, , 10, , PayeeName1, , REF1, ]

上面的模式在每个分割的字符串后面占用空间,正如您在输出中看到的那样。我不想在每个字符串后面都留出空间。如果输入字符串中存在空格,则它需要占用空间,否则它不应占用空间。我的模式需要进行哪些更改?

最佳答案

它的行为符合预期。当在 ArrayList 上调用 toString() 时,它使用 AbstractCollection 的实现,如下所示:

public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";

StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' '); // adds space
}
}

您可以添加一个简单的循环来验证没有为每个元素添加空格:

        for (String s : splitString) {
System.out.println(s + "X");
}

关于java - 每个字符串后面都占用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845595/

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