[code="java"] public static void main(String[] args) {
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("|");
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
[/code]
结果:
[code="java"]
1
9
2
.
1
6
8
.
1
.
1
|
1
9
2
.
1
6
8
.
1
.
2
|
1
9
2
.
1
6
8
.
1
.
3
|
[/code]
[code="java"]
public static void main(String[] args) {
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".replace("|", "^").split("^");
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
[/code]
结果:
[code="java"]
192.168.1.1^192.168.1.2^192.168.1.3^
[/code]
[code="java"]
public static void main(String[] args) {
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".replace("|", ":").split(":");
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
[/code]
这次结果为想要的结果了:
[code="java"]
192.168.1.1
192.168.1.2
192.168.1.3
[/code]
以上,我以为是因为|,^是位运算符的问题,结果我试了&,<<,<<<结果都正常.
为什么使用 |,^ 会变成那样呢?
[code="java"]
public static void main(String[] args) {
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("|");
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("|");
这里
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("\|");
[/code]
[code="java"]
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("\^");
[/code]
不好意思,上面那个字符串里没有 ^ 我只是说明用 \^
:D
|需要转义\|
spilt里面接受的是正则表达式
Java的split方法参数是正则表达式regex,仔细看一下说明。而|的表示在正则表达式里需要转移为|,同时为了作为字符串的参数,\又需要进行转义,所以表示为\,所以split的参数改成“\|”就可以实现目的
str.split();参数是正则表达式。 具体参见api。
| 是正则表达式元字符 所以需要转义 改为\|
注意java的\也是需要转义的。
参数提示,split里是正规表达式!!
[code="java"]
public static void main(String[] args) {
String str[] = "192.168.1.1|192.168.1.2|192.168.1.3|".split("[|]");
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
[/code]
不光是 | 还有 . 都是正则表达式的关键字。 可以先看看正则表达式有那些关键字。以后都加上转义斜杠