在while循环中输入带有System.out.format的输入命令

时间:2020-04-26 19:26:11

标签: java

我写了这个简单的Java程序,但是输出不正确。 我发现如果我使用System.out.println而不是System.out.format,问题就解决了。 但是我想在while循环中使用System.out.format并了解为什么会这样? 该程序根据用户和排序主题提供数组成员。 (我的IDE是Linux中的netbeans 11.3)

package array_example2;
import java.util.Scanner;
import java.util.Arrays;
public class Main { 
public static void main(String[] args) {       
    Scanner input = new Scanner(System.in);
    System.out.println("Enter Array length : ");
    int n = input.nextInt();
    int[] x = new int[n];              
    int i=0;
    while (i<n)
    {            
        System.out.format("Enter Array member %d",i);
        x[i] = input.nextInt();
        i++;
    }
    MySort.mysort(x);
    System.out.format("Array x = %s", Arrays.toString(x));        
}    

MySort类:

package array_example2;
import java.util.Arrays;
public class MySort {
public static void mysort(int...a){
    Arrays.sort(a);

}

输出:

Enter Array length : 
3
67
89
23
Enter Array member 0Enter Array member 1Enter Array member 2Array x = [23, 67, 89]
BUILD SUCCESSFUL in 24s

2 个答案:

答案 0 :(得分:0)

使用\n%n在字符串的末尾指示新行。 System.out.format不会像System.out.println那样创建新行。

System.out.format("Array x = %s%n", Arrays.toString(x));     

答案 1 :(得分:0)

在while循环中,对于overflow: auto方法调用,您需要添加新行,并使用%n触发扫描仪以进行更多输入。

System.format