2011-02-12 6 views
10

예를 들어 aeiou으로 제거 할 문자를 지정할 때 Battle of the Vowels:Hawaii vs Gronzy 문자열이 주어진 경우이 함수는 문자열을 Bttl f th V wls:Hw vs Grzny으로 변환해야합니다.자바 문자열에서 특정 문자를 제거하십시오.

Programming Interviews Exposed에서이 질문을 찾으십시오. 이것은 C로 설명되었지만 Java에 관심이 있습니다.

+2

이것을 구현하려고 제안하셨습니까? 지금까지 뭐 해봤 어? 우리는 당신을 위해 그것을하지 않을거야. –

+0

지역 사회에서 아이디어를 구현하는 방법이 다른지 묻고있었습니다. – SuperMan

답변

18
이 작업을 수행하는 한 가지 간단한 방법은 정규 표현식을 사용하는 것입니다

:

"Battle of the Vowels:Hawaii vs Gronzy".replaceAll("[aeiou]","") 

일부 자바 클래스 라이브러리의 API 문서 :

String.replaceAll : http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

패턴 정규 표현식 : http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html#sum

+0

나는 이것을 시도했다 :'s1 = s1.replaceAll (s2, ""); \t System.out.println (s1);'그러나 작동하지 않습니다. 이 해결책은 우리가 제거 할 cahract를 지정할 때만 작동하는 것 같습니다. – Hengameh

0
public class RemoveCharacters 
{ 
    static String removeCharsFromString(String word1, String word2) 
    { 
     StringBuilder sb = new StringBuilder(word1); 

     System.out.println(sb); 
     //char[] word2characters= word2.toCharArray(); 
     HashMap<Character, Integer> table = new HashMap<Character, Integer>(); 

     for (int i = 0; i < word2.length(); i++) 
     { 
      table.put(word2.charAt(i), 1); 

     } 

     int p = 0; 
     for (int i = 0; i < word1.length(); i++) 
     { 

      if (table.containsKey(word1.charAt(i))) 
      { 
       if (p == 0) 
       { 
        sb.deleteCharAt(i); 
        //p++; 
       } 
       else 
       { 
        sb.deleteCharAt(i - p); 
       } 
       //System.out.println(sb); 
       p++; 
      } 

     } 

     return sb.toString(); 
    } 

    public static void main(String[] args) 
    { 
     System.out.println("Enter your string"); 
     Scanner sc = new Scanner(System.in); 
     String originalword = sc.nextLine(); 

     System.out.println("Enter the remove string"); 
     Scanner sc1 = new Scanner(System.in); 
     String removecharacters = sc1.nextLine(); 

     String result = removeCharsFromString(originalword, removecharacters); 

     System.out.println(result); 
    } 
} 
1
public class RemoveChars { 

    char[] replaceChar = {'a','e','i','o','u'}; 

    public static void main(String[] args) { 
     String src = "Battle of the Vowels:Hawaii vs Gronzy"; 
     System.out.println(new RemoveChars().removeChar(src)); 
    } 

    public String removeChar(String src){ 
     char[] srcArr = src.toCharArray(); 
     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < srcArr.length; i++) { 
      char foundChar = isFound(srcArr[i]); 
      if(foundChar!='\0') 
      sb.append(foundChar);   
     } 
     return sb.toString(); 

    } 

    public char isFound(char src){  
     for (int i = 0; i < replaceChar.length; i++) { 
      if(src==replaceChar[i]){ 
       return '\0'; 
      } 
     } 
     return src; 
    } 
} 
관련 문제