Java在算法题中的输入问题实例详解

网友投稿 503 2022-08-27


Java在算法题中的输入问题实例详解

前言

在写算法题的时候,经常因为数据的输入问题而导致卡壳,其中最常见的就是数据输入无法结束。

1.给定范围,确定输入几个数据

直接使用普通的Scanner输入数据范围,然后使用for循环输入后续数据。

例如:

Scanner scanner = new Scanner(System.in);

//输入数据的范围

int n = scanner.nextInt();

for(int i = 0;i < n;i++){

arrays[i] = scanner.nextInt();

}

2.没有给定范围,但是给出了结束符

使用while循环,当输入结束符的时候退出循环

Scanner scanner = new Scanner(System.in);

//假设使用"0"作为结束符

//无限循环,在循环中和结束符进行比较,相同则停止循环

while(true){

String str = scanner,nextLine();

if(str == "0"){

break;

}

//没有结束,那么对str进行处理

}

//判断输入的数据是否为"0",为"0"则停止循环,不为"0"则继续循环

while(!scanner.hasNext("0")){

String str = scanner.nextLine();

//对str进行处理,只要输入不为"0",就可以一直循环下去

}

3.没有给定范围,直接给定多组数据(这个最需要注意)

此时不能在使用Scanner进行输入,因为无法结束,我们需要使用(BufferedReader)字符缓冲输入流来进行输入。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

while((str = br.readLine()) != null){

//当读入数据的下一行不为空时,进行循环,这里对str进行处理

}

4.Scanner中next()和nextLine()的区别

next()输入不会包含空格以后的数据,只会输入第一个空格前的字符,nextLine()输入可以包括空格,只有遇见http://分隔符(例如回车)才会结束

Scanner scanner = new Scanner(System.in);

String str1 = scanner.next();//输入hello world

Strihttp://ng str2 = Scanner.nextLine();//输入hello world

System.out.println(str1);//输出hello

System.out.println(str2);//输出hello world

5.输入多行数字,未知行数

没有对一行多数字做处理,处理方法和上述但行输入相同。

System.out.println("输入多行数字:");

List list = new ArrayList<>();

String input = "";

while (true) {

input = sc.nextLine();

if (!inphttp://ut.equals("q")) {

list.add(input);

}else {

break;

}

}

for (String s : list) {

//只能转换一行一个数字,多个数字需要额外同上的操作

//int intValue = Integer.valueOf(s);

System.out.println(s);

}

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python ❀ while循环(python基础教程)
下一篇:Python ❀ 类(python下载安装教程)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~