Java 无法将数据存储到ArrayList中?

Java 无法将数据存储到ArrayList中?,java,loops,arraylist,do-while,Java,Loops,Arraylist,Do While,感谢所有的帮助,但是现在问题的性质已经改变了,使用Patrick的建议,下面的循环正在运行,但它似乎没有存储到各个数组的输入数据,而是将hetting替换到ArrayList中,而不是转到ArrayList中的下一个位置有什么建议吗 import java.util.ArrayList; import java.util.Scanner; public class Arrray { public static void main(String [] args){ A

感谢所有的帮助,但是现在问题的性质已经改变了,使用Patrick的建议,下面的循环正在运行,但它似乎没有存储到各个数组的输入数据,而是将hetting替换到ArrayList中,而不是转到ArrayList中的下一个位置有什么建议吗

  import java.util.ArrayList;
import java.util.Scanner;
public class Arrray {
    public static void main(String [] args){

        ArrayList<String> names;
        ArrayList<String> addr;


        do {
            names = new ArrayList<String>();
            addr = new ArrayList<String>();
            Scanner userInput = new Scanner(System.in);
            System.out.println("Name and Adreess are: " + names.size() + "**"
                    + addr.size());
            System.out.println("please Enter Your Name :");
            names.add(userInput.next());
            System.out.println("please enter your Address  :");
            addr.add(userInput.next());

            System.out.println("Do you want to add another entry? :(y/n)" );
            String ans =userInput.next();  // get the value from the user using scanner class
            if(ans.equals("n") || ans.equals("N"))
                break;

        } while (true);
        int n = names.size();
        int a = addr.size();
        for(int i =0; i<n && i<a; i++ )
            System.out.println("Name and address are as below:  "+ names.get(i)+"**"+ addr.get(i));




    }

}
import java.util.ArrayList;
导入java.util.Scanner;
公共类Arrray{
公共静态void main(字符串[]args){
数组列表名称;
ArrayList地址;
做{
名称=新的ArrayList();
addr=newarraylist();
扫描仪用户输入=新扫描仪(System.in);
System.out.println(“名称和地址为:“+names.size()+”**”
+地址大小());
System.out.println(“请输入您的姓名:”);
name.add(userInput.next());
System.out.println(“请输入您的地址:”);
addr.add(userInput.next());
System.out.println(“是否要添加其他条目?:(y/n)”;
String ans=userInput.next();//使用scanner类从用户处获取值
如果(ans.equals(“n”)| ans.equals(“n”))
打破
}虽然(正确);
int n=names.size();
int a=地址大小();

对于(int i=0;i尝试捕获此用户的输入

System.out.println("Do you want to add another entry? :(y/n)");
并在while中使用该信息。

while(true)
与以下选项结合使用:


从用户处获取值,如果用户输入n,则断开,否则为空

System.out.println("Do you want to add another entry? :(y/n)" );
String ans = .... // get the value from the user using scanner class
if(ans.equalsIgnoreCase("n"))
     break;

你必须这样做:

String choice = "";
do {
    .
    .
    .
    .
    System.out.println("Do you want to add another entry? :(y/n)" );
    choice = userInput.next();
} while (!(choice.equals("n") || choice.equals("N")));
线路

choice = userInput.next();

将读取用户输入,用于比较输入的
字符串
等于
方法。循环将继续,直到选择
N
N
导入java.util.ArrayList; 导入java.util.Scanner

公共类数组{

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 y/n?");
        answer = scanner.next();
    } while (answer.equals("y") || answer.equals("Y"));
    if (answer.equals("y") || answer.equals("Y")); //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("");
        }
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList name=新的ArrayList();
ArrayList phone=新的ArrayList();
扫描仪=新的扫描仪(System.in);
字符串答案=”;
做{
System.out.println(“请输入您的姓名:”);
name.add(scanner.next());
System.out.println(“请输入您的号码:”);
phone.add(scanner.nextInt());
System.out.println(“是否要添加目录y/n?”);
答案=scanner.next();
}while(answer.equals(“y”)| answer.equals(“y”));
if(answer.equals(“y”)| answer.equals(“y”);//希望它返回到这里开始另一个direcotry
否则{
System.out.println(“感谢添加到目录”);
对于(int i=0;i

}

您尝试了什么?(false),因为循环条件永远不会重新运行您的循环。您实际尝试从何处获取(y/n)的用户输入选择?很高兴在发布之前看到至少一点努力,并且您正在为每个用户重新创建列表,因此它无论如何都不会起作用。刚开始使用java的家伙们非常新,上周开始使用new,所以请原谅他们的无知,不,这不只是尝试学习使用数组列表的家庭作业。感谢您的回复Patrick感谢您的帮助。非常感谢再次运行循环,但它似乎没有将数据存储到数组中它一直用新条目替换它我想得到的是填充两个数组列表有什么建议吗?
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 y/n?");
        answer = scanner.next();
    } while (answer.equals("y") || answer.equals("Y"));
    if (answer.equals("y") || answer.equals("Y")); //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("");
        }
    }
}