有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java扫描一个整数和一个for循环来扫描一些字符串

我试图扫描一个整数,并运行一个循环来扫描字符串,直到那个整数。但是这段代码跳过了第一个字符串

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

public class A1 {

    public static void main(String[] args) {
        ArrayList <String> A = new ArrayList<String>();
        Scanner sc = new Scanner(System.in);
        System.out.println("How many strings to add:");
        int a = sc.nextInt();
        for(int i=0; i<a; i++)
        {
            System.out.printf("Enter %dth string:\n", i+1);
            String s = sc.nextLine();
            A.add(s);
        }

        for(int i=0; i<A.size(); i++)
        {
            System.out.println(A.get(i));
        }
    }

}

有解决办法吗


共 (1) 个答案

  1. # 1 楼答案

    只需将代码更改为以下内容:

    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class A1 {
    
        public static void main(String[] args) {
            ArrayList <String> A = new ArrayList<String>();
            Scanner sc = new Scanner(System.in);
            System.out.println("How many strings to add:");
            int a = sc.nextInt();
            for(int i=0; i<a; i++)
            {
                System.out.printf("Enter %dth string:\n", i+1);
                String s = sc.next();         //This will wait until you give argument
                A.add(s);
            }
    
            for(int i=0; i<A.size(); i++)
            {
                System.out.println(A.get(i));
            }
        }
    
    }
    

    通过SO post-Java Scanner doesn't wait for user input