在Java中的String Array的开头删除逗号

时间:2016-01-23 01:21:56

标签: java string

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

2 个答案:

答案 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]