-1

単語/フレーズをチェックして、その中の母音がアルファベット順か逆アルファベット順かを言わなければなりません。私はそれを手に入れるのにとても近いです。配列内の数値を比較して、それらが降順であるかどうかなどを確認する最後のビットです。ネストされた for ループを作成する必要があることはわかっていますが、正確な方法はわかりません。助けてくれてありがとう。

public static void main(String [] args)
{


    String result = "", result2="";                                 
    String userInput = "aeiou";
    int [] array = new int[userInput.length()];


    for(int i = 0; i < string.length(); ++i) 
    {

        char c = replace.charAt( i );
        int j = (int) c;
        array[i] = j;

        //printing unicode symbols (only for testing)
        result2 += array[i] +",";
        System.out.println(j);
    }

    boolean sequence = false;
    for(int i = 0; i <array.length-1 && !sequence; i++)
    {
        for(int x =i+1; x<array.length; x++)
        {
            //Here I am checking to see whether or not they are in alphabetical order
            if(array[i] < array[x])
            sequence = true;
            if(sequence == true)
                result = "The vowels are  in  alphabetical order";
            else
                result = "The vowels are not in alphabetical order";
        }
    }

    System.out.println(result);
}
4

2 に答える 2

1

を使用しているので、 (は、母音以外のすべてを置き換えた後の文字列を含む変数です)replaceAll()も使用できると思います。matches()replace

boolean isAscending = replace.matches("a*e*i*o*u*");
boolean isDescending = replace.matches("u*o*i*e*a*");

さて、あなたのコードでは考慮されていないように見えるいくつかの特別なケースがあります:

  • replace変数の文字列が空です (母音なし)
  • 繰り返される母音を 1 つだけ含む (例: pool--> oo)

上記の両方の場合で、isAscending両方isDescendingとも になりますtrue

于 2013-02-16T20:31:41.213 に答える
0

試す

    String input = "abc";
    char[] a = input.toCharArray();
    Arrays.sort(a);
    StringBuilder sb = new StringBuilder();
    sb.append(a);
    if (input.equals(sb.toString())) {
        System.out.println("ascending");
    } else if (input.equals(sb.reverse().toString())) {
        System.out.println("descending");
    } else {
        System.out.println("unsorted");
    }
于 2013-02-17T02:05:00.050 に答える