将数据存储在Array中并输出该数据

时间:2017-06-12 20:15:24

标签: java arrays

我正在开发一个程序,用于将数据存储在用户的数组中并输出该数据。

例如:

输入:

Happy HAPPY@foo.com

输出:

 NAME:  Happy        
 EMAIL: HAPPY@foo.com 

我希望有人能看看我到目前为止所做的事情并给我一个关于如何继续的指针。我知道我必须使用扫描仪类和scan.nextLine,我不确定接下来会发生什么。我知道我没有太多,我不是在找人来完成这个,但也许有人可以给我一些指示或指出我正确的方向。我相信我的计划有正确的基础。

我的代码:

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

    public class Program5 {

      void loadContacts()
      {
        Scanner scan = new Scanner(System.in);
        System.out.println(scan.nextLine());

        scan.close();
      }

      void printContacts()
      {

      }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Program5 program5 = new Program5();
        program5.loadContacts();
        program5.printContacts();

    }

}

3 个答案:

答案 0 :(得分:0)

您应该有一个全局变量来存储名称和电子邮件。尝试在代码顶部添加这些行。在public class Program5 {之后。

private String Name, Email;

您必须将此值分配给void loadContacts()。分割你读的字符串。

void loadContacts()
{
    Scanner scan = new Scanner(System.in);
    String input = scan.nextLine();
    String arr[] = input.split("\\s+");
    Name = arr[0];
    Email = arr[1];
    scan.close();
}

最后在void printContacts()

void printContacts()
{
    System.out.println("NAME: " + Name + "\nEMAIL: " + Email);
}

以下是代码runnig:http://ideone.com/mjyfHK

答案 1 :(得分:0)

更好地命名这个班级" person"或者像这样,但是没关系到解释:

public class Program5 {
    private String name;
    private String mail;

    public Program5(){}

    void loadContacts(){
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a name and a mail like this : name email@email.com (separate with ' ')");
        String[] line = scan.nextLine().split(" ");
        while(line.length!=2){
            System.out.println("Again, enter a name and a mail like this : name email@email.com (separate with ' ')");
            line = scan.nextLine().split("/");
        }
        this.setName(line[0]);
        this.setMail(line[1]);
        scan.close();
    }

    void printContacts() {
        System.out.println("NAME : "+this.name+"\nEMAIL : "+this.mail);
    }

    public static void main(String[] args) {
        Program5 program5 = new Program5();
        program5.loadContacts();
        program5.printContacts();
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }
}

load中,您询问用户,检查一下他输入2个单独的元素' /'如果是,则将它们存储为属性,以便能够在另一种方法中获取它们;)

答案 2 :(得分:0)

你可以做各种各样的事情。

  1. 您可以制作loadContacts()printContacts()静态方法,也可以更改loadContacts()以便它返回数组或2D数组,或者您选择代表名称 - 电子邮件对。然后更改print Contacts()`以接受该类型并遍历该Array以打印出每个名称/电子邮件对。这个解决方案有点多了,但你不必在该类的main方法中创建同一个类的对象。
    1. 您可以按原样保留方法,而是为程序类创建一个名为contacts的新字段,它将是您选择用于表示名称/电子邮件对的类型。您可以在contacts中向loadContacts()添加项目,然后在printContacts()中对其进行迭代。那么你不必改变主方法中的任何内容。