嗨,我遇到了这个问题,当我初始化我的String []时,在我做任何事情之前,String []中似乎有一个null.我如何将String []初始化为完全为空,即在开始时没有null?以下代码的输出是:
nullABC
nullABC
nullABC
nullABC
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
}
Jon*_*eet 14
空引用与字符串数组元素一样空.请注意,对空字符串的引用与空引用之间存在很大差异.只需将代码更改为使用简单赋值而不是+ =.
for (int i = 0; i< inputArr.length; i++){
inputArr[i] = "ABC";
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在其他地方进行条件连接,请使用以下内容:
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;
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用以下内容:
public static String emptyForNull(String x) {
return x == null ? "" : x;
}
Run Code Online (Sandbox Code Playgroud)
然后有:
for (int i = 0; i< inputArr.length; i++){
inputArr[i] = emptyForNull(inputArr[i]) + "ABC";
}
Run Code Online (Sandbox Code Playgroud)
或者(是的,有很多可用选项):
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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |