2017-09-26 30 views
-4

我正在试图制作一个允许用户输入他的名字,中间名和姓氏的程序,但是他可以选择不输入中间名,程序将会弄清楚在这种情况下它应该只显示姓和名。 问题是我希望得到我的“middle_name”扫描仪的长度,并将它放入一个变量,让我理清两个“如果”语句在java中使用我的代码

这里是有问题的代码:

import java.util.Scanner; 

public class Names { 

     public static void main(String[] args){ 
      System.out.print("Enter your name : "); 
      Scanner first_name = new Scanner(System.in); 
      System.out.print("Enter your middle name : "); 
      Scanner middle_name = new Scanner(System.in); 
      System.out.print("Enter your last name : "); 
      Scanner last_name = new Scanner(System.in); 
      int x = Integer.parseInt(middle_name); 
      if(x == 0) { 
       System.out.println("First name : " + first_name); 
       System.out.println("Last name : " + last_name); 
      } 
      if(x > 0) { 
       System.out.println("First name : " + first_name); 
       System.out.println("Middle name : " + middle_name); 
       System.out.println("Last name : " + last_name); 
      } 
     } 
} 
+2

您的名字变量应该是'String's,不'Scanner's。为您的'Scanner'使用一个单独的变量,并利用它来从用户那里获取名称。 – GriffeyDog

+2

你不需要三个独立的'Scanner'对象 - 只要一个就可以。当需要输入时,请在'Scanner'上调用'nextLine'。 –

回答

3

我猜你想做的事是这样的:

  1. 有一个扫描仪读取不同的线路

  2. 检查middle_name的是空()和只有三所System.out中陈述

    public static void main(String[] args){ 
        Scanner in = new Scanner(System.in); 
    
        System.out.print("Enter your name : "); 
        String first_name = in.nextLine(); 
        System.out.print("Enter your middle name : "); 
        String middle_name = in.nextLine(); 
        System.out.print("Enter your last name : "); 
        String last_name = in.nextLine(); 
    
        System.out.println("First name : " + first_name); 
        if(!middle_name.isEmpty()) { 
         System.out.println("Middle name : " + middle_name); 
        } 
        System.out.println("Last name : " + last_name); 
    
        in.close(); 
    }