Home » Java » java – for loop to find consonants in a string-Exceptionshub

java – for loop to find consonants in a string-Exceptionshub

Posted by: admin February 25, 2020 Leave a comment

Questions:

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$"     

    String strConsonants = "f, s, h"; 

    for (int x = 0; x < str.length(); x++) 
    {
       if(((str.charAt(x) == (strConsonants))
       {
          System.out.print("FiSH$");
       }
    }
How to&Answers:

use String.contains() method from String API. the followingcode would work for your present input. usually, if you want to find all the consonents, have an char[] of consonents or String with all the consonents and do the check.

String str = "fish$";     
String strConsonants = "f, s, h"; 
String temp="";
for (int x = 0; x < str.length(); x++){
temp+= str.charAt(x);   
   if(!strConsonants.contains(temp)) {
    consonentsUCase+=temp.toUpperCase();
   }
   temp="";
}

Answer:

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<Character> 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<Character> getVowels() {
            Set<Character> vowels = new HashSet<Character>();
            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;
        }
    }

Answer:

You can use Character.toUpperCase().

String vowels = "aeiouAEIOU";
char[] charArr = str.toCharArray(); //turn the string into char array
for(int i=0; i<charArr.length; i++) { //for loop
    if(vowels.indexOf(charArr[i]) == -1) { // if not a vowel
        charArr[i] = Character.toUpperCase(charArr[i]); //replace with upper case
    }
}
Sting rslt = String.valueOf(charArr); //finally turn the array back to string

Answer:

String str = "fish$";   
String strVowels = "aeiouAEIOU";
String out = "";

for (Character c : str.toCharArray()) 
{
    if(!strVowels.contains(""+c))
    {
        out = out + Character.toUpperCase(c);
    }
    else
    {
        out = out + c;
    }
}
System.out.println(out);

Answer:

This works for me:

     List<Character> constants = Arrays.asList('f', 's', 'h');
     String str = "fish$";

     for (Character c : constants) {             
           str = str.replace(c, Character.toUpperCase(c));
      }