2016-10-09 2 views
-3

문자열 매개 변수에서 속성 값을 추출하려면 어떻게해야합니까?문자열 매개 변수가있는 Java 컨스트럭터

public class Pays{ 
public Pays(String paysDescriptions) { 
     //implementation 
    } 

} 
pays= new Pays("p1:Europe:France, p2:Amerique:Canada"); 

편집 :

내가 (나처럼 : p)를 생성자의이 유형을 사용한 적이 사람들에게 아래의 답변을 준 사람은 약간의 설명이 필요할 수 있습니다.

+1

문자열에 쉼표가 혼동됩니다. 이는 하나의 따옴표로 묶인 단일 문자열이므로 생성자에 대한 단일 매개 변수입니다. –

+0

정확히 이해하지 못하겠습니까? 당신은 하나의 문자열 매개 변수 paysDescriptions'= ""p1 : Europe : France, p2 : Amerique : Canada "' –

+0

@MadMatts 귀하의 코멘트를 위해 새로운'Pays' 오브젝트를 만들고 있습니다. 액세스 속성을 .. 내가 testCase 있고 클래스 구현을 작성해야합니다 – Akino

답변

1

String.split(String regex) API를 사용해보십시오.

    regex

예 결장 (:)를 사용하여 개별 항목 휴식 후, regex

  • 콤마 (,)를 이용하여 파라미터 paysDescriptions 브레이크
  • :

    public Pays(String paysDescriptions) { 
        String[] split_1 = paysDescriptions.split(","); 
        for (String split : split_1) { 
         String[] split_2 = split.split(":"); 
         for (String sp : split_2) { 
          System.out.println(sp); // use sp.trim() if spaces after comma 
                // not required. 
         } 
        } 
    } 
    
  • +0

    답장을 보내 주셔서 감사합니다. 정확히 제가 한 일이었습니다. HashMap을 사용했습니다. – Akino

    +0

    당신이 유용하다고 생각해서 다행입니다. 질문이 열린 상태로 나타나지 않도록 하나의 대답을 수락하십시오. –

    0

    나는 그것이 fi이기 때문에 나는 논리를 오해한다. 처음에 나는 이런 종류의 conctructor를 보았습니다. 나는 단위 테스트 클래스만을 가지고 있고 소스 코드를위한 코드를 구현해야합니다. 그래서 Map<String,String[]>을 사용하여 매개 변수를 분할 한 다음 내 클래스의 다양한 속성에 액세스 할 수 있습니다.

    Map<String, String[]> paysMap = new HashMap<String, String[]>(); 
        public Pays(String paysDescriptions) { 
    
         String s = paysDescriptions; 
         String[] pairs = s.split(","); 
         for (int i=0;i<pairs.length;i++) { 
          String pair = pairs[i]; 
          String[] keyValue = pair.split(":"); 
          paysMap.put(String.valueOf(keyValue[0]),new String[] {String.valueOf(keyValue[1]), String.valueOf(keyValue[2])}); 
    
         } 
        } 
    
    관련 문제