java - 从字符串数组中删除空值的最佳方法

标签 java arrays string

以下是删除空值的两种方法,哪一种是最好的方法?

public static String[] clean(final String[] v) {
    List<String> list = new ArrayList<String>(Arrays.asList(v));
    list.removeAll(Collections.singleton(null));
    return list.toArray(new String[list.size()]);
}

public static String[] clean(final String[] v) {
    List<String> list = new ArrayList<String>(v.length);
     for (String aString : v)
        {
            if (aString != null)
            {
                list.add(aString);
            }
        }
    return list.toArray(new String[list.size()]);
}

最佳答案

为了从单个字符串中删除空值,我将使用这样的正则表达式,

private static Pattern pattern = Pattern.compile("(?i)[(\\[{]?null[)\\]}]?");

    public static String removeNullString(String value) {
        if (StringUtils.isEmpty(value)) {
            return StringUtils.EMPTY;
        }

        Matcher matcher = pattern.matcher(value);
        return matcher.replaceAll(StringUtils.EMPTY);
    }

它覆盖了字符串中的所有“null”和空字符。

用于从 Java 7 中的字符串数组中删除 null 值

String[] firstArray = {"test1", "", "test2", "test4", "", null};

    List<String> list = new ArrayList<String>();

    for(String s : firstArray) {
       if(s != null && s.length() > 0) {
          list.add(s);
       }
    }

    firstArray = list.toArray(new String[list.size()]);

用于从 Java 8 中的字符串数组中删除 null 值

String[] firstArray = {"test1", "", "test2", "test4", "", null};

firstArray = Arrays.stream(firstArray)
                     .filter(s -> (s != null && s.length() > 0))
                     .toArray(String[]::new); 

关于java - 从字符串数组中删除空值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583523/

相关文章:

javascript - 如何在java中的JAX-WS服务器端添加CORS支持

java - 显示收集不同 bean 的报告

java - Java中-D和-d环境变量的区别

python - 如何使用不带引号的键从字符串中生成有效的 JSON?

java - 从服务器拉取场景和步骤 (Zephyr for JIRA)

C++ ifstream::read() 和 C 数组

javascript - ReactJS 中 map 内的映射

C - 调整指针数组的大小

javascript - 当排序字符串时应该 é 在 e 之前

c++ - i++或++ i更适合此程序吗?