在方法中输入每个参数后如何打印?

时间:2017-06-07 14:52:13

标签: java format

所以我知道我的问题,但我似乎无法找到解决问题的方法,我想要做的是在用户提供他们的优先用户名后,我想打印旁边的phoneNumber输入,以及问题我正在遇到这个。

我会让用户输入,

用户名:PhoneNumber:现在他们可以输入

相反,我想要的是这样的:

用户名:来自方法参数.....的输入

phoneNumber:与上面相同

更新版本:

这是我得到的错误

userName无法解析为变量

 public void createCustomer(String userName){


    System.out.print("Enter username: ");
    this.user = input.nextLine();
    this.user = userName;




    this.password = password;
    this.address = address;
    this.phoneNum = phoneNum;
    this.email = email;




  }



  public static void main (String args[]){
    CustomerUI customer = new CustomerUI();
    Scanner input = new Scanner(System.in);




    if(shouldCreate()== true){


    customer.createCustomer(userName);

    }

2 个答案:

答案 0 :(得分:2)

输出提示后,您可以扫描每一行以输入用户名或电话号码。例如:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter username: ");
String username = scanner.nextLine();
System.out.println("Username: " + username);

然后同样的电话号码。然后,您可以将值传递给createCustomer方法:

customer.createCustomer(username, phoneNumber, otherVar, anotherVar, lastVar);

编辑以解决更新的代码:您没有在main方法中定义用户名。如果我们查看您的代码,就会发生这种情况:

  • 我们输入定义customer(一个CustomerUI对象)的主方法和输入(一个Scanner对象)。
  • 如果shouldCreate()方法返回true,我们将使用customer.createCustomer(userName)创建客户。但是,此时,userName尚未在任何地方定义(例如String userName;
  • 在createCustomer中,我们将行"Enter username: "打印到控制台
  • 然后我们将user类变量设置为在控制台中输入的行,起诉input.nextLine()。但是,此时,我们没有在此方法中定义的名为input的变量。它在main中定义,但作为局部变量。因此,无法通过其他方法访问它。
  • 然后从user方法参数分配userName类变量。这将覆盖input.nextLine()值,使该行无效

我建议:

  • Scanner input = new Scanner(System.in)行放入createCustomer方法
  • 删除createCustomer方法的参数,而不是每次都使用input.nextLine()方法分配值

可替换地:

  • Scanner input = new Scanner(System.in)行保留在主方法
  • input.nextLine()方法调用移至main方法,并将其值分配给局部变量
  • 将这些变量传递给createCustomer方法,然后将其分配给类变量

答案 1 :(得分:0)

程序中的指令几乎总是按照它们的写入顺序执行(至少在方法中)。

所以你要做的就是先输出问题,然后再调用输入法。要更改它,您需要重新排序说明。

问题是,您直接将输入返回值传递给另一个方法。因此,您必须引入一些局部变量来存储这些返回值,直到将它们传递给下一个方法:

     System.out.print("");
    System.out.print("Username: ");
    String userName =input.nextLine();
    System.out.print("PhoneNumber: ");
    String phoneNumber =input.nextLine();
    customer.createCustomer(userName, phoneNumber,
          input.nextLine(),input.nextLine(),input.nextInt());