Java在算法题中的输入问题
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()输入可以包括空格,只有遇见分隔符(例如回车)才会结束
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
Java在算法题中的输入问题的更多相关文章
- python在算法题中判断输入结束(EOF)
有些算法题是这样要求的,一行输入一行数据,然后没有规定我要输入多少行,你要自行判断文件结束EOF,否则是会runtime error的,因为oj内部都是用文件来进行读写的. 例如a+b,每一行输入a ...
- Java写算法题中那些影响你效率的细节(关于暴力破解算法题的细节处理)
QQ讨论群:99979568 多交流才能进步 暂时写到这里,有不懂的欢迎评论, 如果有什么其他提高效率的细节,欢迎评论或者私信我,小编一定努力学习,争取早日分享给大家 如果大家嫌三连累的话,可以看看这 ...
- 【经验】 Java BigInteger类以及其在算法题中的应用
[经验] Java BigInteger类以及其在算法题中的应用 标签(空格分隔): 经验 本来在刷九度的数学类型题,有进制转换和大数运算,故而用到了java BigInteger类,使用了之后才发现 ...
- 10道java经典算法题,每一题都能帮你提升java水平!
JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...
- java经典算法题50道
原文 JAVA经典算法50题[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序 ...
- java基础算法题
为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想. [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三 ...
- JAVA常见算法题(三十三)---求子串在字符串中出现的次数
计算某字符串中子串出现的次数. public static void main(String[] args) { String s1 = "adcdcjncdfbcdcdcd"; ...
- JAVA常见算法题(三十)
package com.forezp.util; import java.io.BufferedReader; import java.io.FileReader; import java.io.In ...
- JAVA常见算法题(二十八)
package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * ...
随机推荐
- CentOS6.9部署Redis3.2.9+FastDFS_4.06+Nginx1.5.0
CentOS6.9部署Redis3.2.9+FastDFS_4.06+Nginx1.5.0 原文链接:https://www.toutiao.com/i6481931577499582990/ 一.上 ...
- IDEA安装与配置
一.安装 二.配置 配置字体:source pro code 忽略大小写提示 自动导包 多 tab显示 设置快捷键 设置鼠标悬浮提示 设置行号和方法分隔符 设置maven 断点调试 字符编码 自动删除 ...
- [解决] No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
前端时间项目组让我改一个比较老的项目,说是用Android Studio2.3版本可以直接运行,于是我下载了一个2.3.2的,结果出现了一堆问题,总结下: 首先导入项目后build完直接报出:No t ...
- 干掉 Postman?测试接口直接生成API文档,ApiPost真香!
实不相瞒我的收藏夹里躺着很多优质的开发工具,我有个爱好平时遇到感兴趣的开发工具都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享一款非常好用的API文档工具,真的被惊艳到了,粉丝朋友们也感受一下吧 ...
- FFT 傅里叶万岁
FFT --- Fast Foulier Transformation 以 $O(n \log n)$ 的速度计算 $\forall k=1,2,\dots,n, c[k]=\sum\limits_{ ...
- Json Schema 是什么?
本文地址:Json Schema 是什么? 简单说,Json Schema 其实就是一个标准的 Json 串,它以一个 Json 串来描述我们需要的数据规范,并且支持注释以及验证 Json 文档,即我 ...
- MATLAB中插值算法实现
%%%1.M文件%(1).以往少的程序可以在命令行窗口进行编码,但大量的程序编排到命令行窗口,%会有造成乱码的危险.(2).如果将命令编成程序存储在一个文件中(M文件),依次运行文件中的命令,则可以重 ...
- winfrom 双缓冲
在窗体load函数中 this.DoubleBuffered = true; //控件,需要反射的方式设置 Type dgvType = this.dgv.GetType(); PropertyInf ...
- ROS Kinetic 使用PocketSphinx进行语音识别报错
已解决,重启电脑,装环境把声卡驱动那些似乎死机了 ROS Kinetic 使用PocketSphinx进行语音识别教程 https://www.ncnynl.com/archives/201701/ ...
- Cesium中级教程2 - 图层
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium支持从几个标准服务绘制和添加高分辨率图像(地图)图层 ...