2010-11-04 24 views
1

我正在尋找分割字符串列表,因爲我遍歷列表想象下列爲列表。從java中將字符串拆分爲從列表中拉出來的字符串?

["StringA.StringB.StringC"]["StringA.StringB.StringC"]["StringA.StringB.StringC"]["StringA.StringB.StringC"] 

所以我想通過列表來迭代每個字符串("StringA.StringB.StringC"

接着要由"."到單獨的,並分配給StringA String變量拔出 - 串B的一個和字符串C.執行一些工作,並繼續下一步。

任何想法我可以做到這一點?

回答

4

這是一個相當簡單的任務。只需使用foreach循環訪問列表,然後將字符串拆分爲.字符。

for(String s: list) { 
    String[] splitString = s.Split("\\."); 
    // do work on the 3 items in splitString 
} 

變量splitString將有3

+0

甜美!感謝這! – Julio 2010-11-04 15:31:06

+0

@Franco,很高興我能幫上忙。 – jjnguy 2010-11-04 15:32:54

+2

弗蘭科在時限到期時接受他的回答。這是如何工作的一部分... – AHungerArtist 2010-11-04 15:37:20

0
List<String> strings=new ArrayList<String>(); 

for (String s:stringList){ 
    strings.addAll(Arrays.asList(s.split("\\."))); 
} 

的長度,那麼你就必須在一個列表中的所有字符串,就可以在它們之間迭代。

+2

將無法​​正常工作:) – 2010-11-04 15:33:41

+0

1)「split」的參數是一個正則表達式,而不是一個純字符串。 2)該問題不要求將組件字符串添加到列表中......他希望*「執行一些工作並轉到下一個」*。 – 2010-11-04 15:38:53

1

當然!你只需要String#split()

for (String s : myList) 
{ 
    String[] tokens = s.split("\\."); 
    // now, do something with tokens 
} 

您需要在爭論期間逃到split()因爲字符串被解釋爲一個regex pattern和轉義期(".")將匹配任何字符 - 你想要的!

0

所以你有一個連接字符串的String []的列表。除非這是一種傳統的數據結構,否則你可能會做得更好,以某種方式使它更加統一。

在任何情況下,迭代是非常簡單的 -

List<String[]> l = .... 

for (String[] outer: l) { 
     for (String s: outer){ 
      for (String inner: s.split("\\.")) // s.split takes a regex and returns a String[], 
       // inner has your inner values now 
0

String類具有split(String regex)方法,其將通過正則表達式的字符串。如果你不想處理正則表達式的麻煩,你可以使用Apache Commons Lang中非常方便的StringUtils類。