2017-12-02 8 views
1

답 뒤에 x를 추가하려고하는데, 방법을 시도했지만 한 가지 방법으로 한 번만 반환 할 수 있습니다.문제 1을 나눌 연산자를 만들고 싶습니다. ("+ 6x", "2"), get ("+ 3x"); problem2 :("12", "2"), get ("6").

첫 번째는 문자열에서 x를 제거하는 것이고, 나눗셈 이후에 다시 추가하고 싶습니다.

public String apply(Vector args) 
{ 
    //define two string variables 
    String expString1 = (String)args.get(0); 
    String expString2 = (String)args.get(1); 
    String s = ""; 
    //move the x if the last char is x. 
    if (expString1.charAt(expString1.length()-1) == 'x'){s = expString1.substring(1, expString1.length()-1); 
    }else if (expString1.charAt(expString1.length()-1) != 'x') {s = expString1;} 
    //convert string to int, and do the divide operator. 
    int n2 = Integer.parseInt(expString2); 
    int n1 = Integer.parseInt(s); 
    int result = n1/n2; 
    //get result, but not the one I want, especially for x string. 
    return String.valueOf(result); 
} 

이것은 내가 원하는 것입니다.

public void testApplyVector() { 
    Vector arg = new Vector(); 
    arg.add("+6x"); 
    arg.add("2"); 
    Divide add = new Divide(); 
    assertEquals("+3x", add.apply(arg)); 

    Vector arg2 = new Vector(); 
    arg2.add("12"); 
    arg2.add("2"); 
    assertEquals("6", add.apply(arg2)); 
} 

하지만 이것은 JUnit이 얻는 첫 번째 조건입니다. 대답 뒤에 "x"를 추가하는 방법을 모르겠습니다.

public void testApplyVector() { 
    Vector arg = new Vector(); 
    arg.add("+6x"); 
    arg.add("2"); 
    Divide add = new Divide(); 
    assertEquals("3", add.apply(arg)); 

    Vector arg2 = new Vector(); 
    arg2.add("12"); 
    arg2.add("2"); 
    assertEquals("6", add.apply(arg2)); 
} 
+0

내가 (1 expString1.substring, expString1.length()가'때문에 작동하지 않는 생각 - 1' (0 expString1.substring'에 그것을 잘못 변경되어, expString1.length() -. 1' 당신은 – TheChetan

+0

예, 사실입니다.하지만이 문제를 해결할 수는 없지만 "+ 3x"를 얻을 수는 없습니다. 나누기 전에 제거했지만 어떻게 "x"를 다시 추가 할 수 있습니까? ? –

답변

0

결과에 다른 if 문을 추가하여 문제를 해결했습니다. 이렇게 코드가 첨부됩니다.

public String apply(Vector args) 
{ 
    //define two string variables 
    String expString1 = (String)args.get(0); 
    String expString2 = (String)args.get(1); 
    String s = ""; 

    //move the x if the last char is x. 
    if (expString1.charAt(expString1.length()-1) == 'x'){ 
     s = expString1.substring(0, expString1.length()-1); 
    }else if (expString1.charAt(expString1.length()-1) != 'x') { 
     s = expString1;} 
    //convert string to int, and do the divide operator. 
    int n2 = Integer.parseInt(expString2); 
    int n1 = Integer.parseInt(s); 
    int div = n1/n2; 
    //this is what i add, to check is the expString1 has a x. 
    String result = String.valueOf(div); 
    if (expString1.contains("x")) { return result = result + "x"; } 
    else return result; 


}