Java算法题输入问题实例分析
本篇内容介绍了“Java算法题输入问题实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.给定范围,确定输入几个数据直接使用普通的Scanner输入数据范围,然后使用for循环输入后续数据。
例如:
Scannerscanner=newScanner(System.in);//输入数据的范围intn=scanner.nextInt();for(inti=0;i<n;i++){arrays[i]=scanner.nextInt();}2.没有给定范围,但是给出了结束符
使用while循环,当输入结束符的时候退出循环
Scannerscanner=newScanner(System.in);//假设使用"0"作为结束符//无限循环,在循环中和结束符进行比较,相同则停止循环while(true){Stringstr=scanner,nextLine();if(str=="0"){break;}//没有结束,那么对str进行处理}//判断输入的数据是否为"0",为"0"则停止循环,不为"0"则继续循环while(!scanner.hasNext("0")){Stringstr=scanner.nextLine();//对str进行处理,只要输入不为"0",就可以一直循环下去}3.没有给定范围,直接给定多组数据(这个最需要注意)
此时不能在使用Scanner进行输入,因为无法结束,我们需要使用(BufferedReader)字符缓冲输入流来进行输入。
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));while((str=br.readLine())!=null){//当读入数据的下一行不为空时,进行循环,这里对str进行处理}4.Scanner中next()和nextLine()的区别
next()输入不会包含空格以后的数据,只会输入第一个空格前的字符,nextLine()输入可以包括空格,只有遇见分隔符(例如回车)才会结束
Scannerscanner=newScanner(System.in);Stringstr1=scanner.next();//输入helloworldStringstr2=Scanner.nextLine();//输入helloworldSystem.out.println(str1);//输出helloSystem.out.println(str2);//输出helloworld5.输入多行数字,未知行数
没有对一行多数字做处理,处理方法和上述但行输入相同。
System.out.println("输入多行数字:");List<String>list=newArrayList<>();Stringinput="";while(true){input=sc.nextLine();if(!input.equals("q")){list.add(input);}else{break;}}for(Strings:list){//只能转换一行一个数字,多个数字需要额外同上的操作//intintValue=Integer.valueOf(s);System.out.println(s);}
“Java算法题输入问题实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。