2012-03-26 57 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