2012-03-26 63 views
0
String[] parts = msg.split(" +\n?"); 

    String room = parts[0]; 
    System.out.println(msg); 
    System.out.println("Laczenie do" + room + ", " + parts.length); 
    for (String s : parts) 
     System.out.println("-" + s + "-"); 

输出:神秘(空)字符

main                

Laczenie do, 2 
-- 
-main- 

这是什么第一个字符?如何使用正则表达式切割它?

+2

'msg'的值是什么? 'main'? – talnicolas 2012-03-26 20:12:30

+0

请将所有引用代码(例如msg,main等) – Coffee 2012-03-26 20:14:10

+0

msg =(很少空格)main(很多spacce)(新行) – user1248092 2012-03-26 20:17:51

回答

3

这是字符串开始处的空字符串。您的正则表达式在一个或多个空格处分割,可选地后跟一个换行符。由于您的字符串空间启动后,首先发生分裂围绕这些空间 - 左侧部分是空的,右侧部分为main

使用_可视化的空间,你的字符串看起来像:

__main 

所以,当你把它分解,它就会__"")和部分之前后__"main")分成的部分。

你预计会发生什么?

+0

+1 for可视化部分:) – anubhava 2012-03-26 20:22:25

+0

我除了部分[0 ]将等于主 – user1248092 2012-03-26 20:23:04

+0

如果你的字符串是'“start main”',你是否仍然期望'parts [0]'等于main?如果是这样,为什么? – 2012-03-26 20:24:46