删除String数组中的默认值

请问如何设计一个方法来删除String类型数组中的默认值,感谢

下面为示例代码:

  • 定义名为removeDefaultValue的方法,它接受两个参数:一个是要处理的字符串数组和一个是要删除的默认值。
  • 使用for-each循环遍历输入数组,并使用equals()方法检查每个字符串是否等于默认值。如果不是,我们将其添加到结果列表中。
  • 使用toArray()方法将结果列表转换回字符串数组。
import java.util.ArrayList;

public class RemoveDefaultValue {
    public static String[] removeDefaultValue(String[] inputArray, String defaultValue) {
        ArrayList<String> resultList = new ArrayList<>();
        for (String str : inputArray) {
            if (!str.equals(defaultValue)) {
                resultList.add(str);
            }
        }
        return resultList.toArray(new String[resultList.size()]);
    }
}

这样?不就行了?

example = new String[????];  

Arrays.fill( example, null )    

您可以使用Java 8 Stream API来实现这个功能。示例代码如下:

String[] array = {"default", "value1", "default", "value2"};
array = Arrays.stream(array).filter(s -> !s.equals("default")).toArray(String[]::new);

上述代码将使用filter()方法过滤出数组中不等于"default"的元素,并使用toArray()方法将剩余元素转换成新的字符串数组。


package csdn20230128;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @Description
 * @Author wangFei
 * @Date 2023/1/28 14:30
 * @Version 1.0
 **/
public class StringArray {
    public static void main(String[] args) {
        String[] arr = new String[10];
        arr[0] = "1";
        arr[3] = "2";
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(deleteNull(arr)));
    }

    public static Object[] deleteNull(String[] arr) {
        List<String> list = new ArrayList<>(arr.length);
        list.addAll(Arrays.asList(arr));
        while (list.remove(null));
        return list.toArray();
    }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:给定一个String字符串,输出每个字符的个数(用数组解决)
  • 除此之外, 这篇博客: string类的模拟实现以及浅拷贝问题中的 问:为什么要有string类? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    答:C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^