我写了一个方法,它接受一个网站地址并返回一个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;
}
它可以编译,但是当我开始这个时,没有任何反应。 哪里出错?
答案 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]