2013-05-09 3 views
1

그래서 두 번째 문자열 인수를 사용하는 메서드를 만들려고합니다. 두 번째 문자열 인수는 첫 번째 문자열 인수에서 제거 할 문자열입니다. 내 코드에 무슨 문제가 있는지 알아낼 수 없습니까? 어떤 도움이 필요합니까? 감사.문자열에서 지정된 문자열을 제거하는 방법

내가하는 일의 예 : 첫 번째 인수로 "a, b, c"를 전달하고 두 번째 인수로 ","를 전달하면 "abc"가 반환됩니다.

public List<String> split(String string, String delimiter){ 
    //create and init arraylist. 
    List<String> list = new ArrayList<String>(); 
    //create and init newString. 
    String newString=""; 
    //add string to arraylist 'list'. 
    list.add(string); 
    //loops through string. 
    for(int i=0;i<string.length();i++){ 
     //stores each character from string in newString. 
     newString += string.charAt(i); 

     } 
    newString.replace(delimiter, ""); 
    //remove string from arraylist 'list'. 
    list.remove(string); 
    //add newString to arraylist 'list'. 
     list.add(newString); 


    return list; 
+0

당신이하려는 일의 예를 들려 줄 수 있습니까? – Bill

+4

이 언어를 나타내는 태그를 추가하십시오. –

+0

'String.split'을 보았습니까 (http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#split%28java.lang.String%29)? – nullptr

답변

1

... 당신이 그 목록과 무슨 일을하는지 모르겠지만, 당신이 원하는 모든 a,b,c에서,이 그것을 할 것입니다 abc 경우, 당신의 내용의 질문을 기반으로하지, 아주 간단한

public String split(String s1, String s2){ 
     return s1.replace(s2,""); 
} 
+0

이것은 정확히 제가 주석에있는 것입니다. ..... 이것은'string'을 반환하고 질문에'List'가 있기 때문에 답을 게시하지 않았습니다. – Bill

+0

OP의 목록 사용을 느꼈습니다. 'replace()'가 훨씬 적은 코드로 동일한 결과를 얻었을 때 잔인하고 불필요했다. OP의 해결책을 향상시키는 것을 두려워하지 마십시오. 도움이된다고 생각되면 환호하십시오. – raffian

1
당신은 바퀴를 재발견하려는 것 같은 메소드 이름, 반환 형식과 매개 변수 이름으로 판단

, 보인다 - 당신은 단지 한 줄 필요가있다 : 나는 거기에 백 슬래시를 넣어

public List<String> split(String string, String delimiter){ 
    return Arrays.asList(string.split("\\" + delimiter)); 
} 

을 구분 기호 자체가 점과 같은 정규식 인 경우에 사용됩니다.

+0

그 루프는 루프를 위해 나를 데려 갔다. 나는 유일하지 않았다. – raffian

0
public List<String> split(String str, String delimiter){ 
    //Is the List of strings mandatory? Or is it part of a solution 
    //that didn't originally have to be so? 

    String[] temp; 
    List<String> newStrings=new ArrayList<String>(); 

    //The answer was split(String regex) all along! 
    temp = str.split(delimiter); 

    for(int i=0; i<temp.length; i++){ 
     newStrings.add(temp[i]); 
    } 

    return newStrings; 
} 

}

이 당신이 원하는 사양을 생산하지만,이 각각의 문자열로 공백을 포함 할 것이라고 경고한다. 공백을 제외하도록 요청하면이를 업데이트 할 것입니다.

관련 문제