Python 官方文档:入门教程 => 点击学习
前言 在写算法题的时候,经常因为数据的输入问题而导致卡壳,其中最常见的就是数据输入无法结束。 1.给定范围,确定输入几个数据 直接使用普通的Scanner输入数据范围,然后使用for
在写算法题的时候,经常因为数据的输入问题而导致卡壳,其中最常见的就是数据输入无法结束。
直接使用普通的Scanner输入数据范围,然后使用for循环输入后续数据。
例如:
Scanner scanner = new Scanner(System.in);
//输入数据的范围
int n = scanner.nextInt();
for(int i = 0;i < n;i++){
arrays[i] = scanner.nextInt();
}
使用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",就可以一直循环下去
}
此时不能在使用Scanner进行输入,因为无法结束,我们需要使用(BufferedReader)字符缓冲输入流来进行输入。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while((str = br.readLine()) != null){
//当读入数据的下一行不为空时,进行循环,这里对str进行处理
}
next()输入不会包含空格以后的数据,只会输入第一个空格前的字符,nextLine()输入可以包括空格,只有遇见分隔符(例如回车)才会结束
Scanner scanner = new Scanner(System.in);
String str1 = scanner.next();//输入hello world
String str2 = Scanner.nextLine();//输入hello world
System.out.println(str1);//输出hello
System.out.println(str2);//输出hello world
没有对一行多数字做处理,处理方法和上述但行输入相同。
System.out.println("输入多行数字:");
List<String> list = new ArrayList<>();
String input = "";
while (true) {
input = sc.nextLine();
if (!input.equals("q")) {
list.add(input);
}else {
break;
}
}
for (String s : list) {
//只能转换一行一个数字,多个数字需要额外同上的操作
//int intValue = Integer.valueOf(s);
System.out.println(s);
}
到此这篇关于Java在算法题中的输入问题的文章就介绍到这了,更多相关Java算法题输入问题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java在算法题中的输入问题实例详解
本文链接: https://lsjlt.com/news/139768.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0