2013-12-14 74 views
1

我試圖分割字符串數組(輸入從控制檯得到的)現在存儲在字串[] args如何根據值的動態條目分割字符串數組?

host 9 7 1 router 5 8 11 lan 1 5 2 9

現在ARGS接收的值,並將它們存儲作爲

args[0] = "host", args[1] = "9", args[2] = "7"等和等等。

後弦的「主機」,「路由器」和「LAN」而來的值是動態生成的,即沒有值可以改變

如另一個實例可以

host 0 4 3 9 router 4 9 2 lan 1 3 4 7

對於上面提到的例子中,我想創建一個

String[] hosts將存儲0,4,3,9
String[] routers將存儲4,9,2
String[] lans將存儲1,3,4,7

我怎樣才能做到這一點?

+1

隨着循環。或者,如果你想過度設計它,正則表達式。 –

回答

1
public static void main(String[] args) { 

    String in = "host 0 4 3 9 router 4 9 2 lan 1 3 4 7"; 

    List<String> storage = Arrays.asList(in.split(" ")); 

    boolean isHost = false; 
    boolean isRouter = false; 
    boolean isLan = false; 

    List<String> hostList = new ArrayList<String>(); 
    List<String> routerList = new ArrayList<String>(); 
    List<String> lanList = new ArrayList<String>(); 

    for(String val : storage){ 
     if("host".equals(val)){ 
      isHost = true; 
      continue; 
     } 
     else if("router".equals(val)){ 
      isRouter = true; 
      isHost = false; 
      continue; 
     } 
     else if("lan".equals(val)){ 
      isHost = false; 
      isRouter = false; 
      isLan = true; 
      continue; 
      } 

     if(isHost){    
      hostList.add(val); 
     } 
     else if(isRouter){    
      routerList.add(val); 
     } 
     else if(isLan){    
      lanList.add(val); 
     } 
    } 

    System.out.print("Host: "); System.out.println(hostList); 
    System.out.print("Router: "); System.out.println(routerList); 
    System.out.print("Lan: "); System.out.println(lanList); 

} 

輸出:

Host: [9, 7, 1] 
Router: [5, 8, 11] 
Lan: [1, 5, 2, 9] 
+0

謝謝你,我正在尋找的東西! – pk10