0

我有一个以下格式的字符串:

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

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

4

5 回答 5

7

$是正则表达式中的特殊字符(表示“行尾”)。为了使其简单文字,您需要对其进行转义,例如使用

  • "\\$",
  • "[$]"
  • 或使用引号"\\Q$\\E"
于 2012-10-16T18:36:12.037 回答
1

由于split()方法将参数作为Regex, 并且$是 . 中的特殊元字符Regex。您需要转义$标志:-

    System.out.println(str.split("~#\\$~")[0]);
    System.out.println(str.split("~#\\$~")[1]);
于 2012-10-16T18:36:24.837 回答
0

尝试

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

Arrays.toString(s.split("~#\\$~"))
于 2012-10-16T18:36:37.260 回答
0
String str = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";
String[] pieces = str.split("~#\\$~");
于 2012-10-16T18:36:52.327 回答
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]);

让我知道你有任何问题。

于 2012-10-16T18:59:48.690 回答