2013-02-19 81 views
0

我有一個字符串'123'(是的,它是我的程序中的一個字符串)。任何人都可以解釋,當我用這個方法:java split()方法

String[] str1Array = str2.split(" "); 

爲什麼我str1Array[0]='123'而非str1Array[0]=1

+5

簡單的問題。淹沒答案:P – LGAP 2013-02-19 11:26:18

+1

每個人都想要蛋糕上的櫻桃:P – SudoRahul 2013-02-19 11:26:52

+0

如果下面的答案都不起作用,那麼您的程序中可能有一個不是「123」的字符串。在這裏和那裏你可能會忽略一些空間。 – Sanchit 2013-02-19 11:42:54

回答

3

str2不包含任何空格,因此split拷貝str2的全部內容的str1Array第一索引。

你必須做的:

String str2 = "1 2 3"; 
String[] str1Array = str2.split(" "); 

另外,爲了找到在str2中的每一個字符,你可以這樣做:

for (char ch : str2.toCharArray()){ 
    System.out.println(ch); 
} 

你也可以把它分配給在循環數組。

+0

謝謝,它的效果太好 – Leo 2013-02-19 11:52:13

+1

是的,好吧。謝謝提醒我) – Leo 2013-03-25 10:23:05

1

因爲您的String中沒有空格。 如果你想單字符,嘗試char[] characters = str2.toCharArray()

1

簡單......你試圖通過空間和您的字符串分割字符串「123」,沒有空間

+0

你知道,String [] str1Array = str2.split(「」);它也行不通( – Leo 2013-02-19 11:26:29

3
str2.split("") ; 

試試這個:拆分各字符串中的字符。 輸出:

[, 1, 2, 3] 

但它會返回一個空的第一個值。

str2.split("(?!^)"); 

輸出:

[1, 2, 3] 
+0

沒有效果 – Leo 2013-02-19 11:27:35

+1

@Leo這將給你幾乎你所要求的。它會產生數組'''',「1」,「2」,「3」}' – Alderath 2013-02-19 11:33:55

+0

@Leo看到我的回答我認爲第二個就是你想要的 – 2013-02-19 11:47:09

2

傳遞給split()的正則表達式應該在字符串中有一個匹配項,以便它將在字符串中找到匹配項的位置拆分字符串。這裏你傳遞的是「123」中找不到的「」,因此沒有發生分裂。

1

這是因爲split()方法字面上根據作爲參數給出的字符分割字符串。

我們每次找到拆分字符都會刪除拆分字符並形成一個新的字符串。

String[] strs = "123".split(" "); 

的字符串"123"不具有字符" "(空間),因此不能被分開。所以返回只是數組中的單個項目 - { "123" }

1

做了 「拆分」 你必須使用一個分隔符,在這種情況下,插入一個 「」 每個號碼之間

public static void main(String[] args) { 
    String[] list = "123456".replaceAll("(\\d)", ",$1").substring(1) 
      .split(","); 
    for (String string : list) { 
     System.out.println(string); 
    } 
} 
0

試試這個:

字符串str = 「123」; String res = str。分裂(」」);

將返回以下結果:

1,2,3

相關問題