在java中使用气泡排序以升序或降序显示元素

在java中使用气泡排序以升序或降序显示元素,java,bubble-sort,Java,Bubble Sort,我在显示字母时遇到了问题,不管它们是否按升序排列,逻辑似乎是正确的,假设数组按升序排列,但打印时总是得到错误的结果,我尝试了其他方法,但总是得到错误的结果 public class Main { public static void main(String[] args) { System.out.print( "#Enter text : " ); String text = BIO.getString(); boolean i

我在显示字母时遇到了问题,不管它们是否按升序排列,逻辑似乎是正确的,假设数组按升序排列,但打印时总是得到错误的结果,我尝试了其他方法,但总是得到错误的结果

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();


       }
    }
}
公共类主
{
公共静态void main(字符串[]args)
{
系统输出打印(“#输入文本:”);
String text=BIO.getString();
布尔顺序=假;
而(!text.equals(“END”))
{
顺序=真;
//将上述字符串转换为字符数组。
char[]arr=text.toCharArray();
对于(int i=0;i arr[i+1]){
顺序=假;
打破
}
}
如果(按顺序){
System.out.printf(text+“按升序排列\n”);
}
否则{
System.out.printf(text+“不是升序\n”);
}
系统输出打印(“#输入文本:”);
text=BIO.getString();
}
}
}

上述代码工作正常,可能是由于
BIO.getString()返回的值有问题。在标题中,你提到了冒泡排序算法,代码在哪里?问题可能就在那里

编辑:

既然您已经提到了大写/小写单词的问题,我建议您在比较之前将输入文本转换为小写,如下所示:

char[] arr = text.toLowerCase().toCharArray();

这样,文本是大写还是小写就无关紧要了。

您得到了什么输出?你期待什么?当你在调试器中运行代码时,你学到了什么?你能提供一个例子说明这段代码是错误的吗?请在这样的问题中添加“家庭作业”标记,这与冒泡排序有什么关系?代码很好,尽管你只需要做更多的步骤,你可以通过简单地用if(text.charAt(i)做检查部分来限制自己>text.charAt(i+1))问题在于getString()方法返回的值。您仍然在java中使用printf thingy。我确认上述代码工作正常,即使是非英语字符。此外,上面的代码显示了它检查的字符串,因此只要查看程序输出就可以很容易地检查它是否说了实话,除非BIO.getString()函数做了一些不好的事情,例如在字符串中嵌入了一些不可打印的字符,如零。问题是当我输入单词时,例如“knotty”将给我结果“按升序排列”,但当在单词“knoty”的开头和结尾加上大写字母时,它会给我结果“不按升序排列”请帮忙,thanks@user761980我编辑了我的答案,请检查它是否适合你。您应该从一开始就提到您在使用大写/小写时遇到了问题。