如何在同一行上打印单独的循环



我正在尝试按升序和降序对这个数组进行排序,请帮帮我。我有两个单独的循环,我想在同一行上打印两个循环,如果我不能这样做,请告诉我另一种方法。这是一个任务,如果有人想知道的话。

    import java.util.Arrays;
    public class Lab10c{
        public static void main(String[] args) {
            System.out.println("AscendttDescendn");
            String ss[] = new String[]{"Hi", "Hello", "Greetings", "Howdy", "Welcome"};
            Arrays.sort(ss);
            for ( int i = 0; i < ss.length; i++){
                System.out.print(ss[i] + "n");
            }
                for (int r = ss.length -1; r>=0; r--){
                    System.out.println(  "tt" + ss[r]);   
                }
            }
        }

这是当前的打印输出:

    Ascend        Descend
    Greetings
    Hello
    Hi
    Howdy
    Welcome
            Welcome
            Howdy
            Hi
            Hello
            Greetings

我需要它在两个单独的列排列时打印。谢谢!p.s 对不起,如果我不清楚,我是该网站的新手:)

为此,无论如何,您必须在每次迭代时获取两个元素。

这意味着在迭代i时,您需要从开始获取i位置的元素,并从结束时获取i位置的元素。

您已经有一个从末尾开始并向后返回的循环,因此您可以轻松看到这将解决问题:

for (int i = 0; i < ss.length; ++i) {
  int fromBegin = i;
  int fromEnd = ss.length - 1 - i;
  System.out.println(ss[fromBegin]+"t"+ss[fromEnd]);
}

fromBeginfromEnd都将沿阵列以镜面反射方式移动。

这样做

        for ( int i = 0,j=ss.length-1;; i < ss.length; i++,j--){
            System.out.println(ss[i] + "tt"+ss[j]);
        }
为什么像

你提到的那样打印elemenets?

在你的代码中,对于第一个 for 循环,

 for ( int i = 0; i < ss.length; i++){
        System.out.print(ss[i] + "n");
    }

System.out.print(ss[i] + "n");等于 System.out.println(ss[i]) ,当打印数组中的元素时,也会打印 newLine()。

然后执行第二个 for 循环。

        for (int r = ss.length -1; r>=0; r--){
            System.out.println(  "tt" + ss[r]);   
        }

在此循环中打印的元素不会从 sonsole 的第一行打印。这样你得到的结果:

Ascend        Descend
Greetings
Hello
Hi
Howdy
Welcome
        Welcome
        Howdy
        Hi
        Hello
        Greetings

如何解决?

您需要将 2 个 for 循环组合在一起,例如,

for (int i = 0; i < ss.length; i++) {
        //Print element in Ascend order
        System.out.print(ss[i]); 
        //Print element in Descend order in the same line
        System.out.println("tt" + ss[ss.length - i - 1]);
    }

最新更新