0

我今天刚刚安装了 NetBeans 12.6,我在下面粘贴的代码中遇到了 System.out.print() 问题。由于某种原因,removeValue 中的 print() 直到 main 中 for 循环中的 println() 才会打印。当我在 BlueJ 中运行这段代码时,一切正常。我的 NetBeans 有问题还是??

所需的输出看起来像:

输入索引:2
1
3

相反,它看起来像:

2
输入索引:1
3

package e.mavenproject1;
import java.util.Scanner;

public class NewClass {
    static Scanner input = new Scanner(System.in);
    
    public static void main(String[]args) {
        int[] array = {1, 2, 3};
  
        array = removeValue(array);
    
        for (int i = 0; i < array.length; i++) {
           System.out.println(array[i]);
        }
    }

    public static int[] removeValue(int[] array) {
         System.out.print("Enter index: ");
         int index = input.nextInt() - 1;

         int[] copy = new int[array.length - 1];

         for (int i = 0, j = 0; i < array.length; i++) {
             if (i != index) {
                 copy[j++] = array[i];
             }
         }
         return copy;
     }
}
4

1 回答 1

0

print() 将字符串添加到 PrintStream 而不刷新它。如果你想刷新它,你需要在它之后添加 flush() 命令。println() 会自动刷新它,所以这也可以工作。另外,需要明确的是,这不是错误。

于 2022-01-18T02:23:58.147 回答