【问题标题】:how to store more than string variable input in one string from loop (JAVA)如何从循环(JAVA)的一个字符串中存储多个字符串变量输入
【发布时间】:2019-03-05 21:04:53
【问题描述】:

我是java的半初学者

这是我的代码

        while (true) {
        System.out.println("Choose the number");
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4 for Display summary and Exit");

        int cho = input.nextInt();

        System.out.println("Registration");

        System.out.println("Enter your full name (first and lastname)");
        String name = input.next();

        System.out.println("Enter your National ID");
        int id = input.nextInt();

        System.out.println("Enter your phone number");
        int phone = input.nextInt();

我为所有选择 1,2,3,4 做了 if 语句

这是第 4 个 if 语句

            else if (cho == 4) {
            System.out.println("Summary");
        }

我希望在这个循环中,如果主菜单中的用户选择 4 打印选择 1、2、3 的所有注册用户(姓名、电话、身份证)的摘要,即使用户进行了多次注册,然后退出程序。

【问题讨论】:

  • 你试过 List 还是 String[] 数组?这就是我要开始的——无论如何,你必须以某种方式对你在某种类型的记录中引用的数据进行分组——比​​如稍后的对象。首先尝试一些简单的事情 - 在循环中添加单个字符串(仅限名称)到列表,然后在第 4 种情况下简单地显示所有内容。
  • 你需要持久化用户,还是只是一个内存数据库?如果首先,尝试一些简单的事情,比如写入文本文件。
  • 这段代码真的没有意义。您处于无限循环中,这意味着您永远无法干净地退出此代码。您没有存储收集到的任何数据,因为每次您绕过循环时都会将其清除,并且看起来数据点 1、2 和 3 都属于同一个用户,当然您希望收集整个数据集而不是不仅仅是一件套装。我想我想说的是这段代码背后的意图是什么?
  • 我在问如何做到这一点,即使我是完全初学者以外的另一种方式,我可以用循环内的循环或一些简单的方式来做到这一点吗?
  • 请不要破坏您的帖子,其他用户已经花费了时间和精力来帮助您解决问题。任何破坏行为都将被撤销。

标签: java string loops if-statement


【解决方案1】:

你应该使用像Person这样的类来存储每一轮循环中的每个人,比如

class Person{
    String name;
    int id, phone;
    // Constructor with the 3 attributes
    // toString() method implemented
}

当使用要求4打印所有列表

List<Person> peoples = new ArrayList<>()
while (true) {
    System.out.println("Choose the number\n1\n2\n3\n4 for Display summary and Exit");
    int cho = input.nextInt();

    System.out.println("Registration");

    System.out.println("Enter your full name (first and lastname)");
    String name = input.next();

    System.out.println("Enter your National ID");
    int id = input.nextInt();

    System.out.println("Enter your phone number");
    int phone = input.nextInt();

    Person p = new Person(name, id, phone);
    peoples.add(p)
    //...
    if( cho == 4){
        peoples.forEach(System.out::println);
        break;
    }
}

【讨论】:

  • 谢谢 azro,但是有没有简单的方法,比如循环内的循环或使用主循环进行一些编辑,我的学校朋友告诉我使用字符串 + 字符串我不知道那是什么。
猜你喜欢
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 2013-02-06
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多