代码之家  ›  专栏  ›  技术社区  ›  marcoamorales

Java扫描程序类读取字符串

  •  29
  • marcoamorales  · 技术社区  · 16 年前

    int nnames;
    String names[];
    
    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = in.nextInt();
    names = new String[nnames];
    
    for (int i = 0; i < names.length; i++){
      System.out.print("Type a name: ");
      names[i] = in.nextLine();
    }
    

    该代码的输出如下:

    How many names are you going to save:3 
    Type a name: Type a name: John Doe
    Type a name: John Lennon
    

    5 回复  |  直到 11 年前
        1
  •  27
  •   ivan.sim    11 年前

    int nnames;
    String names[];
    
    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = in.nextInt();
    
    names = new String[nnames];
    in.nextLine();
    for (int i = 0; i < names.length; i++){
            System.out.print("Type a name: ");
            names[i] = in.nextLine();
    }
    

    或者只是读取该行并将值解析为整数。

    int nnames;
    String names[];
    
    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = Integer.parseInt(in.nextLine().trim());
    
    names = new String[nnames];
    for (int i = 0; i < names.length; i++){
            System.out.print("Type a name: ");
            names[i] = in.nextLine();
    }
    
        2
  •  7
  •   Ankur Nirmalkar    8 年前

    使用sc.nextLine();两次,这样我们就可以读取字符串的最后一行

    sc.nextLine() sc.nextLine()

        3
  •  2
  •   Nettogrof    16 年前

    这是因为in.nextInt()不改变行。因此,您首先“enter”(按3后)使循环中的in.nextLine()读取endOfLine。

    int nnames;
        String names[];
    
        System.out.print("How many names are you going to save: ");
        Scanner in = new Scanner(System.in);
        nnames = Integer.parseInt(in.nextLine());
        names = new String[nnames];
    
        for (int i = 0; i < names.length; i++){
                System.out.print("Type a name: ");
                names[i] = in.nextLine();
        }
    
        4
  •  2
  •   wangzhengyi    12 年前

    int nnames;
    String names[];
    
    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = in.nextInt();
    in.nextLine();
    names = new String[nnames];
    
    for (int i = 0; i < names.length; i++){
            System.out.print("Type a name: ");
            names[i] = in.nextLine();
    }
    
        5
  •  0
  •   Angelin Nadar    10 年前

    names[i] = in.nextLine(); names[i] = in.next();