2011-09-27 118 views
0

我試圖將數組中的信息段拆分成一個新的,分解成單個單詞。我知道我需要使用String []分割(字符串正則表達式),但我無法得到它輸出正確。如何使用現有的拆分片填充新陣列? (Java)

我在做什麼錯?

(假定句子[i]是在現有陣列)

String phrase = sentences[i]; 

    String[] sentencesArray = phrase.split(""); 

    System.out.println(sentencesArray[i]); 

謝謝!

+1

什麼是我初始化? 「句子」是如何聲明的?我的理解方式是,'句子[i]'似乎指的是句子中的特定單詞,而不是整個句子。 – BlackJack

+0

我是這樣初始化的:'for(int i = 0; i <句子長度; i ++){'句子是一個String [15],數組中的每個地方都被不同的引用文本句子佔據。 -am我回答正確的問題? – karhu

回答

2

這可能只是控制檯輸出出錯了。嘗試通過

System.out.println(java.util.Arrays.toString(sentencesArray)); 

空字符串參數替換最後一行phrase.split("")的嫌疑了。嘗試通過一個單詞邊界:

phrase.split("\\b"); 
+0

這工作!謝謝! – karhu

0

您使用的是空的表達式拆分,嘗試phrase.split(" ")和工作從那裏。

0
String[] sentencesArray = phrase.split(""); 

依據的正則表達式在其上phrase需要在這裏分手了什麼。如果您希望基於一個空格字符分割,請使用:

String[] sentencesArray = phrase.split(" "); 
            // ^Give this space 
+0

錯過了那裏的空間。謝謝,Mahesh! – karhu

0

這沒有任何用處:

String[] sentencesArray = phrase.split(""); 

你在拆分空字符串,它將返回單個字符數組在字符串中,從一個空字符串開始。

很難從你的問題/代碼告訴你想要做什麼,但如果你想拆就話你需要的東西,如:

private static final Pattern SPC = Pattern.compile("\\s+"); 
. 
. 
String[] words = SPC.split(phrase); 

正則表達式將分在一個或多個空格這可能是你想要的。