拆分代码可以编译,但不能启动

时间:2016-03-16 18:42:37

标签: java string split

我写了一个方法,它接受一个网站地址并返回一个String[],其中包含协议,域和上下文(如果有的话)。
示例:http://stackoverflow.com/questions => {"http", "stackoverflow", "questions"}

String[] splitAddress(String address) {
String[] split = address.split("://");
String[] split1 = split[1].split(".com");
if (split1[1] == "") {
    String[] end = new String[2];
    end[0] = split[0];
    end[1] = split1[0];
    return end;
} else {
    String[] e = new String[3];
    e[0] = split[0];
    e[1] = split1[0];
    e[2] = split1[1];
    return e;
}

它可以编译,但是当我开始这个时,没有任何反应。 哪里出错?

2 个答案:

答案 0 :(得分:0)

System.out.println(array)不适用于阵列。您必须在for循环中将数组值写入控制台,或者您可以使用Arrays.toString(array)方法作为M. Mariscal在下面写的。以下代码正常运行,您只需删除“/ question”之前的/字符。

public class SplitTest {
    public static void main(String[] args) {

        String[] array = splitAddress("http://stackoverflow.com/questions");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

    static String[] splitAddress(String address) {
        String[] split = address.split("://");
        String[] split1 = split[1].split(".com");
        if (split1.length < 2) {
            String[] end = new String[2];
            end[0] = split[0];
            end[1] = split1[0];
            return end;
        } else {
            String[] e = new String[3];
            e[0] = split[0];
            e[1] = split1[0];
            e[2] = split1[1];
            return e;

        }
    }
}

结果:

http
stackoverflow
/questions

答案 1 :(得分:0)

我认为你正在寻找这样的东西:

 import java.util.Scanner;

    public class Main
    {

        public static void main (String[] args){

     System.out.println(java.util.Arrays.toString(
     splitAddress("http://stackoverflow.com/questions")));
        }

        public static String[] splitAddress(String address) {
        String[] split = address.split("://");
        String[] split1 = split[1].split(".com/");
        if (split1[1] == "") {
            String[] end = new String[2];
            end[0] = split[0];
            end[1] = split1[0];
            return end;
        } else {
            String[] e = new String[3];
            e[0] = split[0];
            e[1] = split1[0];
            e[2] = split1[1];
            return e;
        }
    }
}

最后显示:[http,stackoverflow,questions]