【问题标题】:java arraylist that stores userinput存储用户输入的java arraylist
【发布时间】:2010-12-16 12:33:20
【问题描述】:

当用户键入 yes 时,我如何让它返回以启动另一个目录,以及如何使用打印格式打印 arraylist

谢谢

import java.util.ArrayList;
import java.util.Scanner;

public class AAA
{
    public static void main(String[] args) 
{

    ArrayList<String> name = new ArrayList<String>();
    ArrayList<Integer> phone = new ArrayList<Integer>(); 
    Scanner scanner = new Scanner(System.in); 


    {
        System.out.println("Please enter your name: ");
        name.add(scanner.next());
        System.out.println("Please enter your number: ");
        phone.add(scanner.nextInt());

        System.out.println("Do you want to add a directory yes/no?");
        String answer = scanner.nextLine(); 

        if (answer.equals("yes"));
        //want it to go back to start another direcotry here

        else 
    {

        System.out.println("Thanks for adding to the directory");
        System.out.println(answer());
    }


    }

    }
}

【问题讨论】:

标签: java arrays arraylist user-input


【解决方案1】:

尝试使用 while true,然后,当用户键入 no 时,您会破坏外观。代码如下:

ArrayList<String> name = new ArrayList<String>();
ArrayList<Integer> phone = new ArrayList<Integer>(); 
Scanner scanner = new Scanner(System.in); 

while(true){
    System.out.println("Please enter your name: ");
    name.add(scanner.next());
    System.out.println("Please enter your number: ");
    phone.add(scanner.nextInt());

    System.out.println("Do you want to add a directory yes/no?");
    String answer = scanner.next(); 

    if (answer.equals("no")){
        System.out.println("Thanks for adding to the directory");
        System.out.println(answer());
        break; //
    }

}

还有其他策略,例如使用 do/while。但本质上你必须使用循环。

【讨论】:

  • 嗨,感谢您在代码中中断该位置的帮助,它不允许我添加更多内容,当我删除它时,我无法停止添加你能帮忙吗?
  • 好吧,我忘了。将行:String answer =scanner.nextLine() 改为 String answer =scanner.next(),就可以了。
【解决方案2】:

您可以轻松打印出一个 ArrayList:

System.out.println(list);

它将打印如下内容:

[一、二、三]

其中一、二、三是调用 toString() 或数组列表元素的结果。

您可以通过以下方式轻松删除 []:

System.out.println(list.toString().replace("[", "").replace("]", ""));

您需要在循环中使用您的自定义格式实现打印:

for (String s : list) {
    System.out.println(format(s));
}

【讨论】:

    【解决方案3】:
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class COL {
        public static void main(String [] args) {
    
    
            List<Integer> phone = new ArrayList<Integer>(); 
            Scanner scanner =new Scanner (System.in);
    
            while (true) {
                System.out.println("Please enter your number: ");
                phone.add(scanner.nextInt());
    
                System.out.println("Do you want to add a directory yes/no?");
                String answer = scanner.next(); 
                if (answer.equals("no")){
                    System.out.println("Thanks for adding to the ArrayList");
                    System.out.println("\t "+phone);
                    break; //
                }
    
            }
        }
    
    }
    

    【讨论】:

    • Addinf 简单解释一下比只贴一段代码要好
    【解决方案4】:
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class AAA {
    
        public static void main(String[] args) {
    
            ArrayList<String> name = new ArrayList<String>();
            ArrayList<Integer> phone = new ArrayList<Integer>();
    
            Scanner scanner = new Scanner(System.in);
            String answer = "";
    
            {
                do {
                    System.out.println("Please enter your name: ");
                    name.add(scanner.next());
                    System.out.println("Please enter your number: ");
                    phone.add(scanner.nextInt());
                    System.out.println("Do you want to add a directory yes/no?");
                    answer = scanner.next();
                } while (answer.equals("yes"));
                if (answer.equals("yes")); //want it to go back to start another direcotry here
                else {
    
                    System.out.println("Thanks for adding to the directory");
                    for (int i = 0; i < name.size(); i++) {
                        System.out.print(name.get(i)+"\t");
                        System.out.print(phone.get(i));
                        System.out.println("");
                    }
                }
    
    
            }
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      相关资源
      最近更新 更多