我必须检查一个单词/短语,并说出其中的元音是按字母顺序排列还是按字母顺序排列。 我非常接近它。它只是最后一点比较数组中的数字,看看它们是否按降序排列等等。我知道我必须做一个嵌套的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);
}
答案 0 :(得分:1)
由于您使用replaceAll()
,我假设您也可以使用matches()
(replace
是替换除元音之外的所有内容后包含字符串的变量):
boolean isAscending = replace.matches("a*e*i*o*u*");
boolean isDescending = replace.matches("u*o*i*e*a*");
嗯,这里有一些特殊情况似乎没有在您的代码中考虑:
replace
变量中的字符串为空(无元音)pool
- &gt; oo
)在上述两种情况下,isAscending
和isDescending
都是true
。
答案 1 :(得分: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");
}