将输入的字符串中空格替换为%20后在输出,java中空指针错误。。。。

public class ReaplaceSpace {
static int i, j, k, count, length;
static String str;
static char[] array_original;

public static void main(String[]args){
    BufferedReader br = new BufferedReader(
            new InputStreamReader(System.in));
    str = null;
    System.out.println("please input a line string:");
    try {
        str = br.readLine();
    } catch (IOException e) {
        e.printStackTrace();
    }
    ReplaceString(str);
}

public static  int OriginalSapceNum() {
    char[] array_original = str.toCharArray();
    length = array_original.length;
    for(i = 0; i <= length;i++){
        if(array_original[i] == ' '){
            count++;
        }
    }
    return count;
}

public static String  ReplaceString(String str){
    String tempString;
    if(str == null || str.length() <= 0){
        return null;
    }else{
        int count_replace= length + count*2;
        char[] array_replace = new char[count_replace];
        for(j = 0; j <= length; j++){
            if((array_original[j] != ' ') && (k <= array_replace.length)){
                array_replace[k] = array_original[j];
                k++;
            }else if((array_original[j] == ' ') && (k <= array_replace.length)){
                array_replace[k] = '%';
                array_replace[k+1] = '2';
                array_replace[k+2] ='0';
                k = k+3;
            }
        }
        System.out.println(array_replace.toString());
        tempString = array_replace.toString();
        return tempString;
    }
}



错误:Exception in thread "main" java.lang.NullPointerException
at ReaplaceSpace.ReplaceString(ReaplaceSpace.java:46)
at ReaplaceSpace.main(ReaplaceSpace.java:24)

array_original;没有初始化
OriginalSapceNum只有里面有初始化,但是它没有调用

空指针就是.前面的变量为null了,没看懂你的代码,哪个是主方法啊
自己debug一下哪行报错吧

空指针就是.前面的变量为null了,没看懂你的代码,哪个是主方法啊
自己debug一下哪行报错吧

static int i = 0, j = 0, k = 0, count = 0, length = 0;
static String str = "";
static char[] array_original = str.toCharArray();

public static void main(String[] args) {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("please input a line string:");
    try {
        str = br.readLine();
    } catch (IOException e) {
        e.printStackTrace();
    }
    OriginalSapceNum();
    ReplaceString(str);
}

public static int OriginalSapceNum() {
    length = array_original.length;
    for (i = 0; i < length; i++) {
        if (array_original[i] == ' ') {
            count++;
        }
    }
    return count;
}

public static String ReplaceString(String str) {
    String tempString;
    if (str == null || str.length() <= 0) {
        return null;
    } else {
        int count_replace = length + count * 2;
        char[] array_replace = new char[count_replace];
        for (j = 0; j < length; j++) {
            if ((array_original[j] != ' ') && (k <= array_replace.length)) {
                array_replace[k] = array_original[j];
                k++;
            } else if ((array_original[j] == ' ')
                    && (k <= array_replace.length)) {
                array_replace[k] = '%';
                array_replace[k + 1] = '2';
                array_replace[k + 2] = '0';
                k = k + 3;
            }
        }
        System.out.println(array_replace.toString());
        tempString = array_replace.toString();
        return tempString;
    }
}

}
能说下这个代码有啥用吗,能做什么业务啊