获得空值。初学者

时间:2013-09-16 02:36:28

标签: java

当使用交互面板运行我的代码时,我在结果之前得到一个空值。例如,当我输入: 第一个词 - 谷歌 第二个字 - 铬

结果应该是 - gcohorgolme 但它是 - nullgcohorgolme

任何想法为什么? 这是我的代码:

public class Collate{
  String result;
  String x;
  String y; 

  public String collate(String x, String y){

    for(int i = 0; i < x.length(); i++)
    {
      result += x.charAt(i);
      result += y.charAt(i);
    }
    return (result);
  }
}

非常感谢!

7 个答案:

答案 0 :(得分:7)

确保初始化result

  public String collate(String x, String y){
    result = ""; // <-- here

    for(int i = 0; i < x.length(); i++)
    {
      result += x.charAt(i);
      result += y.charAt(i);
    }
    return (result);
  }

答案 1 :(得分:3)

您尚未初始化result值。

请记住,您应该始终初始化变量。发生null是因为您的结果已初始化,然后转换为字符串null

答案 2 :(得分:2)

首先将结果初始化为空字符串。

result = "";

答案 3 :(得分:2)

result字符串初始化为String result = "";
此步骤应始终作为预防措施,否则您最终可能会得到null输出。

答案 4 :(得分:1)

result += x.charAt(i) 等于 result = result + x.charAt(i)result在第一次循环时为空。

答案 5 :(得分:1)

您始终可以使用StringBuffer。

public static String collate(String x, String y){

    StringBuffer result = new StringBuffer();

    for(int i = 0; i < x.length(); i++)
    {
        result.append(x.charAt(i)).append(y.charAt(i));
    }

    return (result.toString());
}

答案 6 :(得分:0)

4.3.1 Objects(来自Java语言规范):

  

字符串连接运算符+,当给定String时   操作数和引用,将通过调用将引用转换为String   引用对象的toString方法(如果是引用,则使用“null”   或者toString的结果是一个空引用),然后会产生一个新的   created String是两个字符串

的串联

这里result字符串初始化为空引用。因此,要获得所需的结果,您需要将result初始化为:

String result="";