繁体   English   中英

在Java中的字符串数组开头删除逗号

[英]Remove comma at the start of String Array in Java

我有多个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);
            }
        }

可能的解决方案:

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(","));bv.deleteCharAt(bv.lastIndexOf(","));

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM