如果我拆分这个字符串,为什么我的string.length 0?

时间:2014-05-22 22:50:15

标签: java arrays split string-length

这可能是一个非常简单的问题,但我会先给你代码。

import java.util.Scanner;

public class help {
public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Give: ");
    String s = sc.next();

    String[] parts = s.split(".");

    System.out.println(parts.length);
}
}

即使我给出了192.168.1.1.1.1.1或1.2.3或......,parts.length也总是0,有人可以向我解释为什么以及如果我输入1.2我怎么能让它为4 .3.4

2 个答案:

答案 0 :(得分:6)

您需要s.split("\\."),因为split的参数是正则表达式。正则表达式中的.字符表示"任何字符",并且您需要使用反斜杠转义它以使其表示" dot"。

答案 1 :(得分:2)

因为"."是一个特殊字符,意思是"任何字符"。

你需要逃避它才能将它用作角色"。":

String[] parts = s.split("\\.");