JAVA吸收换行符(在按行输入字符串中)

例如:输入n个带空格的字符串

	Scanner in = new Scanner(System.in);
	int n = in.nextInt();
	String []s = new String [n]; // 定义字符串数组
	for(int i=0;i<n;i++)
	{
		s[i] = in.nextLine(); // 按行读取
	}
	for(String a:s)
    {
    	System.out.println(a);
    }
	 
	 输入:3
	 	  ABC
	 	  DEF
	 	  GHI
	 输出: 	  
	 	  ABC
	 	  DEF 	   	  		 

上面的代码是无法读入3个想要输入的字符串的,当读到第2个时就已经结束。(因为在循环里字符串数组是读入了一个换行符的,所以在例子中申请的三个字符串空间是提前读完了的而无法输入第三个想要输入的字符串)

解决方案:

		Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] s = new String[n];
        in.nextLine()//在这里单独写一句读取语句用于读取吸收换行符
        for (int i = 0; i < n; i++)
        {
            s[i] = in.nextLine();
        }
        for(String a:s)
        {
            System.out.println(a);
        }
        
     输入:3
	 	  ABC
	 	  DEF
	 	  GHI
	 输出: 	  
	 	  ABC
	 	  DEF
	 	  GHI

猜你喜欢

转载自blog.csdn.net/weixin_45735242/article/details/103946050
今日推荐