我有一个使用Java分割的字符串。它在我的Windows机器上工作得很好,但在我的Mac上没有(使用Eclipse)
我有一个包含单个空格和双空格的文本字符串,如下所示:
August 05 July 09 May 07 April 01 March 19 February 19 January 15 December 17 December 04 December 03 December 02 November 24 October 30
我正在使用
分裂String monthAndDay[] = formattedNewsDates.split("\\s\\s");
同样,不确定为什么它在Windows上工作但不在Mac上工作。一个平台是否以不同的方式理解正则表达式?
答案 0 :(得分:0)
由于您正在使用Eclipse,因此您可以调试代码并查看支持char[]
的{{1}}。
或者,您可以以十六进制打印字符串。这是一个快速且(非常)脏的六角打印机:
String
输出
String s = " August 05 July 09 May 07 April 01 March 19 February 19 January 15 December 17 December 04 December 03 December 02 November 24 October 30";
for (byte b : s.getBytes("UTF-8"))
System.out.printf("%02x ", b);
System.out.println();
for (byte b : s.getBytes("UTF-8"))
System.out.print(b >= 32 ? (char)b + " " : "? ");
System.out.println();
如您所见,空格为十六进制20 41 75 67 75 73 74 20 30 35 20 20 20 4a 75 6c 79 20 30 39 20 20 20 4d 61 79 20 30 37 20 20 20 41 70 72 69 6c 20 30 31 20 20 20 4d 61 72 63 68 20 31 39 20 20 20 46 65 62 72 75 61 72 79 20 31 39 20 20 20 4a 61 6e 75 61 72 79 20 31 35 20 20 20 44 65 63 65 6d 62 65 72 20 31 37 20 20 20 44 65 63 65 6d 62 65 72 20 30 34 20 20 20 44 65 63 65 6d 62 65 72 20 30 33 20 20 20 44 65 63 65 6d 62 65 72 20 30 32 20 20 20 4e 6f 76 65 6d 62 65 72 20 32 34 20 20 20 4f 63 74 6f 62 65 72 20 33 30
A u g u s t 0 5 J u l y 0 9 M a y 0 7 A p r i l 0 1 M a r c h 1 9 F e b r u a r y 1 9 J a n u a r y 1 5 D e c e m b e r 1 7 D e c e m b e r 0 4 D e c e m b e r 0 3 D e c e m b e r 0 2 N o v e m b e r 2 4 O c t o b e r 3 0
。十六进制值20
到00
是控制字符,例如1F
和CR
。如果您的字符串具有非ASCII字符,则每个字符打印为2-4个字节,十六进制值为LF
或更高。