Java String.split无法正常工作

时间:2012-10-16 18:34:04

标签: java regex

我有以下格式的字符串:

CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM

我可以使用String.split("~#$~")还是必须使用StringTokenizer?我将在上面的字符串中只有2个参数,这就是为什么我试图使用String.Split(“〜#$〜”),但它似乎不起作用。

5 个答案:

答案 0 :(得分:7)

正则表达式中{p> $special character(表示“行尾”)。要使其简单,您需要将其转义,例如使用

  • "\\$"
  • "[$]"
  • 或使用引文"\\Q$\\E"

答案 1 :(得分:1)

由于split()方法将参数设为Regex$Regex中的特殊元字符。您需要转义$符号: -

    System.out.println(str.split("~#\\$~")[0]);
    System.out.println(str.split("~#\\$~")[1]);

答案 2 :(得分:0)

尝试

String s = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";

Arrays.toString(s.split("~#\\$~"))

答案 3 :(得分:0)

String str = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";
String[] pieces = str.split("~#\\$~");

答案 4 :(得分:0)

你可以使用String.split()来做到这一点。无需使用StringTokenizer。见下面的例子。

String s="CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";
        String test[]=s.split("\\~\\#\\$\\~");
        System.out.println(test[0]);
        System.out.println(test[1]);

让我知道你有任何问题。