0

for ループを使用して、文字列内のすべての子音を大文字にするにはどうすればよいですか?

私はこのようなことをすべきだと思います:

    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$");
       }
    }
4

5 に答える 5

1

String APIの String.contains() メソッドを使用します。次のコードは、現在の入力に対して機能します。通常、すべての子音を見つけたい場合は、子音の char[] またはすべての子音を含む文字列を用意して、チェックを行います。

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="";
}
于 2012-09-29T22:20:41.983 に答える
1

私はちょうどそれを書いた。

出力: フィッシュ $

どんな単語にも対応!;)

API メソッド: 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;
        }
    }
于 2012-09-29T22:41:06.043 に答える
0

これは私のために働く:

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

     for (Character c : constants) {             
           str = str.replace(c, Character.toUpperCase(c));
      }
于 2012-09-29T23:02:19.763 に答える
0
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);
于 2012-09-29T22:42:42.160 に答える
0

使用できます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
于 2012-09-29T22:20:56.437 に答える