我有问题显示字母以太它们是否按升序排列,逻辑看起来是正确的,假设数组按升序排列,但是当我打印它们时总是得到错误的结果,我试过了另一个方式,但总是得到错误的结果。
public class Main
{
public static void main(String[] args)
{
System.out.print( "#Enter text : " );
String text = BIO.getString();
boolean inorder = false;
while ( ! text.equals( "END" ) )
{
inorder = true;
// Convert the above string to a char array.
char[] arr = text.toCharArray();
for (int i=0; i<arr.length-1; i++)
{ //Check pair
if ( arr[i] > arr[i + 1] ) {
inorder = false;
break;
}
}
if ( inorder ) {
System.out.printf( text + " is in ascending order\n" );
}
else {
System.out.printf( text + " is not in ascending order\n" );
}
System.out.print( "#Enter text : " );
text = BIO.getString();
}
}
}
答案 0 :(得分:1)
上面的代码工作正常,可能问题出在BIO.getString()
返回的值中。在标题中你还提到了一个冒泡排序算法,那里的代码是什么?问题可能就在那里。
修改强>
既然您已经提到问题是大写/小写的话,我可能会建议您在比较之前将输入文本转换为小写,如下所示:
char[] arr = text.toLowerCase().toCharArray();
通过这种方式,文本是大写还是小写都无关紧要。