华为机试后的总结之---输入输出,Java从键盘获取输入(不知道输入个数)——java中Scanner的hasNext()死循环的问题。

刚开始机试,就被卡在了输入输出上,网上找了半天,贴出来:

链接如下:https://blog.csdn.net/imgcl/article/details/82875061

题目:输入任一行整形数组,和一个长度n,取n的长度一次循环使其连接在一起

 如 输入  n = 3;

输入:1,2,3,4

           5,6,7,8,9;

输出为:1,2,3,5,6,7,4,8,9

代码:

import java.util.*;
public class Main {
	static List> mat = new ArrayList();
	static StringBuilder sb = new StringBuilder();
	public static void main(String[] args) {	
		Scanner sc = new Scanner(System.in);
		 String num = sc.nextLine();
         int n = Integer.parseInt(num);
		while(true){
			
			String str = sc.nextLine();
			if(str.equals("")){break;}
			mat.add(new LinkedList(Arrays.asList(str.split(","))));
		}
  System.out.print(mat);
  while(!mat.isEmpty()){
	  for(Iterator> itr = mat.iterator();itr.hasNext(); ){
		  List curLine = itr.next();
		  int i = 0;
		  for(; i < n && !curLine.isEmpty(); i++){
			  sb.append(curLine.remove(0));
		  }
		  if( i < n) itr.remove();
	  }
  }
  
  char[] out = sb.toString().toCharArray();
  for(int i=0; i < out.length -1 ; i++){
	  System.out.print(out[i]);
	  System.out.print(",");
  }
  
  System.out.print(out[out.length -1 ]);
  
  
 }
}

 

 

你可能感兴趣的:(华为机试后的总结之---输入输出,Java从键盘获取输入(不知道输入个数)——java中Scanner的hasNext()死循环的问题。)