Java - 根据字符串是否为元音转换字符串数组中的字符

时间:2013-02-20 17:25:32

标签: java string character

该方法接受任何名称并测试角色是元音还是辅音。如果它是一个元音,它会使字符大写,如果它是一个辅音,它会使字符小写。有什么想法吗?我不知道如何在if else语句中添加.toUpperCase.toLowerCase

public static void parsing(String name[])
{
    String temp = name[0];

    int i = 0;
    for(i = 0; i < temp.length(); i++)
    {
        if(temp.charAt(i) == 'a' || temp.charAt(i) == 'A' ||
           temp.charAt(i) == 'e' || temp.charAt(i) == 'E' ||
           temp.charAt(i) == 'i' || temp.charAt(i) == 'I' ||
           temp.charAt(i) == 'o' || temp.charAt(i) == 'O' ||
           temp.charAt(i) == 'u' || temp.charAt(i) == 'U')
        {
         System.out.print(temp.charAt(i).toUpperCase);
        }//Obviously wrong but I don't know what to do.
            else
            {
            System.out.print(temp.charAt(i).toLowerCase);
            }//Obviously wrong but I don't know what to do.     
    }   

5 个答案:

答案 0 :(得分:2)

要转换单个字符,请使用Character类中的方法:

System.out.print(Character.toUpperCase(temp.charAt(i)));
System.out.print(Character.toLowerCase(temp.charAt(i)));

答案 1 :(得分:1)

创建两个最终数组 - 一个带有元音,第二个带有辅音。然后检查循环中的当前char是元音还是辅音,并进行适当的更改。

答案 2 :(得分:0)

由于字符串是不可变的,所以你正在打击你的脑袋。重建结果字符串。 (位次优)解决方案是:

public static void parsing(String[] names)
{
    for (int i = 0; i < names.length; ++i) {
        names[i] = chAngEd(names[i]);
    }
}

private static String chAngEd(String s) {
    String result = "";
    for (int i = 0; i < s.length(); ++i) {
        char ch = s.charAt(i);
        if (ch == 'a' || ...) {
            ch = Character.toUpperCase(ch);
        } else {
            ch = ...
        }
        result += ch;
    }
    return result;
}

答案 3 :(得分:0)

public static void parsing(String names[]){
   for (int i=0; i<names.length; ++i){
       names[i] = capitaliseConsts(names[i]);
   }
}


private static String capitaliseConsts(String name){
    StringBuilder sb = new StringBuilder();
    Character c;

    for (int i=0; i<name.length(); ++i){
        c = name.charAt(i);
        if (c.equalsIgnoreCase('a') || 
            c.equalsIgnoreCase('e') ||
            c.equalsIgnoreCase('i') ||
            c.equalsIgnoreCase('o') ||
            c.equalsIgnoreCase('u')){

          sb.append(Character.toUpperCase(c));
       }
       else{
             sb.append(Character.toLowerCase(c));
       }
    }
    return sb.toString();
}

答案 4 :(得分:0)

String vowelsArray = "aeiuo";
String constantsArray = "uppercase constants";
int stringLength = name.length();
String givenNameCopy = name.ToString();
for(int i = 0; i < stringLength; i++){
if(vowelsArray.contains(givenNameCopy[i]))
   then uppercase
else if(constantsArray.contains(givenNameCopy[i]))
   then lowercase
else
    continue;

希望这会有所帮助。