0

メソッドは任意の名前を受け取り、文字が母音か子音かをテストします。母音なら大文字に、子音なら小文字にします。何かご意見は?if else ステートメントに.toUpperCaseandを追加する方法がわかりません。.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.     
    }   
4

5 に答える 5

2

1 つの文字を変換するには、Characterクラスのメソッドを使用します。

System.out.print(Character.toUpperCase(temp.charAt(i)));
System.out.print(Character.toLowerCase(temp.charAt(i)));
于 2013-02-20T17:29:30.487 に答える
1

最終的な配列を 2 つ作成します。1 つは母音、もう 1 つは子音です。次に、ループ内の現在の文字が母音か子音かを確認し、適切な変更を行います。

于 2013-02-20T17:29:19.827 に答える
0

String は不変であるため、頭を悩ませています。結果の文字列を再構築します。(少し最適ではない)解決策は次のとおりです。

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;
}
于 2013-02-20T17:34:40.927 に答える
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();
}
于 2013-02-20T17:41:17.043 に答える
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;

お役に立てれば。

于 2013-02-20T17:41:55.740 に答える