2013-12-14 1 views
1

제가값의 동적 항목을 기반으로 문자열 배열을 분할하는 방법은 무엇입니까?

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

지금 인수가

args[0] = "host", args[1] = "9", args[2] = "7"과 같은 값 및 그것들을 수신하여 현재 문자열 [] args를 저장 (콘솔로부터 얻어지는 입력) 문자열의 배열을 분할하는 것을 시도하고 등등. 문자열 "호스트", "라우터"및 "LAN"들어오는

값은 값 아니오

는 예컨대 다른 인스턴스 일 수 변경 즉, 동적으로 생성되지

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

위에서 언급 한 예를 들어 나는

String[] hosts0,4,3,9
저장할 것이다 만들려면
String[] lans4,9,2가 저장합니다 저장합니다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

관련 문제