我希望我的程序显示没有" null"的结果。据我所知,当我总结str1 + str2时,str1等于null,这就是为什么结果不正确,但我不知道如何解决它。
static String str1;
static String str2;
public static void ConvertBinaryArrayToInt(List<Integer> binary) {
for (int i = 0; i<binary.size(); i++ ){
int c = binary.get(i);
str2 = String.valueOf(c);
str1 = str1 + str2;
}
System.out.println(str1);
}
public static void main(String[] args){
List<Integer> binary1 = new ArrayList<>(4);
binary1.add(0,1 );
binary1.add(1,0 );
binary1.add(2,1 );
binary1.add(3,1 );
BinaryArrayToNumber.ConvertBinaryArrayToInt(binary1);
}
答案 0 :(得分:1)
解决问题的一个很小的方法就是
str1 = (str1 == null ? "" : str1) + (str2 == null ? "" : str2);
但是,您应该为此创建一个方法
private String safeConcatenate(String str1 String str2) {
if (str1 == null && str2 == null)
return "";
if (str1 == null)
return str2;
if (str2 == null)
return str1;
return str1 + str2;
}
如果您不需要保持变量相同,那么这也应该有效:
private String safeConcatenate(String str1, String str2) {
if (str1 == null)
str1 = "";
if (str2 == null)
str2 = "";
return str1 + str2;
}