gpt4 book ai didi

java - String[] 初始化为 null?

转载 作者:行者123 更新时间:2023-12-02 10:58:26 25 4
gpt4 key购买 nike

嗨,我遇到了这个问题,当我初始化 String[] 时,在我执行任何操作之前 String[] 中似乎有一个 null 。我如何将 String[] 初始化为完全空,即开头没有 null ?以下代码的输出是:
<br/>nullABC
<br/>nullABC
<br/>nullABC
<br/>nullABC
<br/>nullABC

public static void main(String[] args){
String[] inputArr = new String[5];
for (int i = 0; i< inputArr.length; i++){
inputArr[i] += "ABC";
}
for (int i = 0; i< inputArr.length; i++){
System.out.println(inputArr[i]);
}
}

}

最佳答案

空引用与字符串数组元素一样为空。请注意,对空字符串的引用和空引用之间存在很大差异。只需更改您的代码以使用简单的赋值而不是 +=。

for (int i = 0; i< inputArr.length; i++){
inputArr[i] = "ABC";
}

如果您需要在其他地方进行条件串联,请使用如下内容:

for (int i = 0; i< inputArr.length; i++) {
String current = inputArr[i];
String suffix = "ABC";
String replacement = current == null ? suffix : current + suffix;
inputArr[i] = replacement;
}

或者,您可以使用如下内容:

public static String emptyForNull(String x) {
return x == null ? "" : x;
}

然后有:

for (int i = 0; i< inputArr.length; i++){
inputArr[i] = emptyForNull(inputArr[i]) + "ABC";
}

或者(是的,很多可用选项):

public static String nullAwareConcat(String x, String y) {
return x == null && y == null ? ""
: x == null ? y
: y == null ? x
: x + y;
}

...

for (int i = 0; i< inputArr.length; i++){
inputArr[i] = nullAwareConcat(inputArr[i], "ABC");
}

关于java - String[] 初始化为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2638488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com