Remove specific characters from string in Java

前端 未结 3 1146
孤城傲影
孤城傲影 2021-02-20 00:28

For example, given a string of Battle of the Vowels:Hawaii vs Gronzy when we specify the characters to be removed as aeiou, the function should transfo

相关标签:
3条回答
  • 2021-02-20 00:44
    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;
        }
    }
    
    0 讨论(0)
  • 2021-02-20 00:45
    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);
        }
    }
    
    0 讨论(0)
  • 2021-02-20 00:57

    One simple way to do this is to use a regular expression:

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

    Some Java Class Library API documentation:

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

    Patterns and regular expressions: http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html#sum

    0 讨论(0)
提交回复
热议问题