我有多个String [],其中一些以逗号开头。我怎么能在所有数组的循环中删除这个逗号。
结果:
[,a,b,c,d]
[e,f,g,h,i]
[,j,k,l,m,n]
[w,x,y,z]
代码:
HashMap<String, String[]> newHashMap = new HashMap();
String[] baseVectorArray;
for (String name : externalMap.keySet()) {
if (!name.isEmpty()) {
StringBuilder bv = new StringBuilder();
HashMap<String, List<String>> l = oldHashMap.get(name);
List<String> list_of_names;
for (String id : l.keySet()) {
list_of_authors = l.get(id);
for (String s : list_of_names) {
bv.append(s);
bv.append(", ");
}
}
bv.deleteCharAt(bv.lastIndexOf(","));
String bvs = bv.toString();
String[] bva = bvs.split(",");
System.out.println(Arrays.toString(bva));
newHashMap.put(name, bva);
}
}
答案 0 :(得分:0)
可能的解决方案:
for (String s : list_of_names) {
bv.append(s.startsWith(',') ? s.substring(1) : s);
bv.append(", ");
}
基本上我们正在检查它是否以逗号开头。如果是这样,我们会忽略它。
如果您使用的是Java 8,也许您应该将代码重构为lambda连接:
String bv = list_of_names.stream()
.map(s -> s.startswith(",") ? s.substring(1) : s)
.collect(Collectors.joining(", "));
在这种情况下,不需要:bv.deleteCharAt(bv.lastIndexOf(","));
答案 1 :(得分:0)
String[] array = {"", "a", "b", "c", "d"};
List<String> list = new ArrayList<>(Arrays.asList(array));
list.removeAll(Arrays.asList("", null));
array = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(array));
输出:[a,b,c,d]