gpt4 book ai didi

java - HashSet 中的额外逗号

转载 作者:行者123 更新时间:2023-11-29 03:34:40 26 4
gpt4 key购买 nike

我正在尝试按大写字母拆分字符串,例如当字符串为“SizeColorSize”时,输出数组为:{“Size”、“Color”、“Size”}。这正常工作。现在我想从数组中删除重复项,这就是我使用 HashSet 的原因,这样我就有了 ["Color", "Size"] 排序的集合。然后我在 MySQL 表中打印输出。

但问题是在输出中我多了一个逗号:[, "Color", "Size"]。知道为什么会这样吗?

这是代码的一部分:

for (int j = 0; j < configPair.size(); j++) {
r = configPair.get(j).split("(?=\\p{Lu})");
for (int i = 0; i < r.length; i++) {
r = new HashSet<String>(Arrays.asList(r)).toArray(new String[0]);
r[i].trim();
Arrays.sort(r);
Set<String> mySet = new HashSet<String>(Arrays.asList(r));
sqlAttributeConfig = "INSERT INTO Config_Attributes (Config_Pairs) VALUES ('"
+ mySet + "')";
System.out.print(r[i]);
}
System.out.println();
r = null;
con.stmt.executeUpdate(sqlAttributeConfig);
}

最佳答案

String 的开头与 String.split() 中的正则表达式匹配时,它会产生一个额外的空 String

因此 split 将返回 ["", "Size", "Color", "Size"] 而不是 ["Size", "Color", "Size"],因此行为.

Split 的官方 Javadoc 是这样说的:

The array returned by this method contains each substring of the input sequence that is terminated by another subsequence that matches this pattern or is terminated by the end of the input sequence.

所以我猜前导空 String 有资格作为“输入序列的子字符串,该子字符串由匹配此模式的另一个子序列终止”,如文档中所述。

关于java - HashSet 中的额外逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193426/

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