for loop to find consonants in a string

后端 未结 5 1078
灰色年华
灰色年华 2021-01-28 02:24

Using a for loop, how do I go about making all consonants in a string uppercase?

I think I should do something like this:

    String str = \"fish$\"             


        
5条回答
  •  渐次进展
    2021-01-28 02:36

    I've just written it.

    Output: FiSH$

    Works for any word ! ;)

    API method: printStringWithUpperConsonant

       import java.util.HashSet;
       import java.util.Set;
    
       public class ConsonantUtils {
    
            private Set vowels = getVowels();
    
            private String analysedString;
    
            public ConsonantUtils(String analysedString) {
                this.analysedString = analysedString;
            }
    
            public static void main(String[] args) {
                new ConsonantUtils("fish$").printStringWithUpperConsonant();
            }
    
            public void printStringWithUpperConsonant() {
                for (int i = 0; i < getAnalysedString().length(); i++) {
                    printChar(getCurrentChar(i));
                }
            }
    
            private char getCurrentChar(int i) {
                return getAnalysedString().charAt(i);
            }
    
            private void printChar(char currentChar) {
                if (isConsonant(currentChar)) {
                    System.out.print(makeCharUpperCase(currentChar));
                }
                else{
                    System.out.print(currentChar);
                }
            }
    
            private Set getVowels() {
                Set vowels = new HashSet();
                vowels.add('a');
                vowels.add('e');
                vowels.add('i');
                vowels.add('o');
                vowels.add('u');
                return vowels;
            }
    
            private char makeCharUpperCase(char character) {
                return Character.toUpperCase(character);
            }
    
            private boolean isConsonant(char currentChar) {
                return !vowels.contains(currentChar);
            }
    
            private String getAnalysedString(){
                return analysedString;
            }
        }
    

提交回复
热议问题