java - JAVA数组只打印最后一个元素?

标签 java arrays loops listings

private static String[] nameArray;

public static void newPerson() {
 Scanner scanner = new Scanner(System.in);

 System.out.print("Name: ");
 name = scanner.nextLine();
 nameArray = new String[] {
  name
 };

}

public static void personInfo() {
 System.out.print("Current Persons : \n");
 StringBuilder arrayOutput = new StringBuilder();

 for (String something: nameArray) {
  arrayOutput.append(something);
 }

 String text = arrayOutput.toString();
 System.out.println(text);
}

大家好,提前感谢您的帮助,我遇到了一个问题,我有一个循环,一旦在该方法中输入数字,就会调用一个方法,如下:

所以我的问题是,每当我调用 newPerson 方法并输入一个名称,而不是将所有名称存储在数组中并稍后打印时,personInfo 方法只打印我在数组中输入的最终名称,为什么它不显示所有的名字?

最佳答案

您将在每次输入后完全替换 nameArray。您必须将其添加到您的数组中。但在这种情况下使用“ArrayList”更容易。

基于您提供的代码构建:

private static ArrayList<String> nameArray = new ArrayList<>();

public static void newPerson() {
       Scanner scanner = new Scanner(System.in); 

       System.out.print("Name: ");
       name = scanner.nextLine(); 
       nameArray.add(name);
}

public static void personInfo() {
    System.out.print("Current Persons : \n"); 
    StringBuilder arrayOutput = new StringBuilder();
    for ( String something  : nameArray) {
        arrayOutput.append(something);
    }  
    String text = arrayOutput.toString();
    System.out.println(text); 
}

关于java - JAVA数组只打印最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38518978/

相关文章:

excel - GAMS 中的循环用于在 Excel 中生成场景

java - 为什么Java的try-with-resource中需要声明

java - Java中如何查找HeapQueue是否包含值?

php - 在php中从数组中将数据插入mysql

c++ - 字符串矩阵的 sizeof

javascript - 在另一个函数中返回一个函数的结果会产生错误的结果

java - 如何在 GUI JPanel 中打印对象数组?

javascript - 在 JavaScript 中如何在循环中添加延迟

java - Jtable中的AutorowSorter链接到mysql

java - return 导致程序要求输入两次