我试图找到一种方法,使输入的字符串的元音在计算其中的元音后变为大写。
import java.util.*;
public class Main {
public static void main(String[] args) {
// Vowels test = new Vowels(); //comment out this line
System.out.println("enter a string"); //Says enter String
Scanner kb = new Scanner(System.in); //Com reads the input
String str = kb.nextLine(); // this is the String variable to the input
// char vowel = str.charAt(p);
int count = 0; //this counts thee vowels
for(int p = 0; p<str.length(); p++) // p is the looping for the char vowel
{
char vowel = str.charAt(p);
//.Character.toUppercase(); //Character.toUpperCase doesn't work so much here...
// char vOwEl = Character.toUpperCase(vowel); //Adding a new char doesnt work either
switch (vowel)
{/* I forget the single quotes here...*/
case 'a':
// a-=32;
/*Character.toUpperCase('a');
count++;
break;//didn't work...*/
case 'e':
// e-=32;
/*Character.toUpperCase('e');
count++;
break; */
case 'i':
//i-=32;
/* Character.toUpperCase('i');
count++;
break;*/
case 'o':
// o-=32;
/* Character.toUpperCase('o');
count++;
break;*/
case 'u':
//u-=32;
//Character.toUpperCase('u');
count++;
//System.out.println("There are "+count+"vowels in the string: "+str);
break;
default:
//System.out.println("There is no vowels.");
// no code since it will print out "there is no vowels" a number of times
}
}
System.out.println("There are "+count+" vowels in the string: "+str);
// test.countVowels(str); //comment out this line
}
}
答案 0 :(得分:1)
String
是不可变的。我会使用StringBuilder
。我希望if
更复杂switch
语句。另外,我最后使用格式化输出。像,
System.out.println("enter a string");
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
int count = 0;
StringBuilder sb = new StringBuilder();
for (char ch : str.toCharArray()) {
char t = Character.toUpperCase(ch);
if (t == 'A' || t == 'E' || t == 'I' || t == 'O' || t == 'U') {
sb.append(t);
count++;
} else {
sb.append(ch);
}
}
System.out.printf("There are %d vowels in the string: %s%n", count,
sb.toString());
答案 1 :(得分:1)
StringBuilder
存储和修改您想要的位置的字符。Character
类将字符转换为大写/小写例如
System.out.println("enter a string"); //Says enter String
Scanner kb = new Scanner(System.in); //Com reads the input
String str = kb.nextLine(); // this is the String variable to the input
int count = 0; //this counts thee vowels
StringBuilder result = new StringBuilder(str.toLowerCase());
for (int p = 0; p < str.length(); p++) // p is the looping for the char vowel
{
char vowel = str.charAt(p);
switch (vowel) {/* I forget the single quotes here...*/
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
result.setCharAt(p, Character.toUpperCase(vowel));
count++;
break;
}
}
str = result.toString();
System.out.println("There are " + count + " vowels in the string: " + str);