PTA中如何出Java题目?
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的。写一篇文章供大家参考。
有多种类型输入的编程题:
类型1:固定数量输入
从控制台读入**两个**数,然后将其相加输出。
对于该题可以有如下两种样例输入输出:
样例输入输出1:
输入:
1 2
输出:
3
或者
样例输入输出2:
输入:
1
2
输出:
3
注意:
- 样例输入对应着输入文件中的内容,比如对应着输入文件
0.in
,一般来说该文件的最后还要有一个回车,比如1 2后面应有一个回车。 - 样例输出对应着输出文件的内容,比如对应着输出文件
0.out
。 - 文件必需使用
UTF-8
格式编码,回车换行要使用Linux的回车换行。可以使用Notepad++进行处理。 - 不要出现中文!不管是输入文件、输出文件还是学生提交的代码。
对以上题目有几种解法:
解法1:
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(); //直接将字符串转化为int
int b = sc.nextInt();
System.out.println(a+b);
sc.close();
解法2:
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.next()); //先将每个单元读出为字符串,然后再将其转化为int型
int b = Integer.parseInt(sc.next());
System.out.println(a+b);
sc.close();
使用next()
方法可以自动跳过空格、多个空格、空行、回车换行
。推荐使用。
解法3(适用于样例输入输出2,每行只有一个数):
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.nextLine()); //nextLine处理整行,因此如果需要将整行作为一个处理单元,可以使用nextLine
int b = Integer.parseInt(sc.nextLine());
System.out.println(a+b);
sc.close();
注意:
- 以上所有处理方法都必须先
import java.util.Scanner
。 - 代码中尽量不要将
nextLine()
与其他如next()
、nextInt()
等方法混用,否则会出现nextLine()
只读取到行尾回车换行符的问题。
类型2:不定数量输入
从控制台读入**若干**整数,然后将其相加输出。
对于该题可以有如下两种样例输入输出:
样例输入输出1:
输入:
1 2 3 4 5 6 7
8 9 10
输出:
55
或者
样例输入输出2:
输入:
1
2
3
4
5
6
7
8
9
10
输出:
55
解法1:可处理上述两种输入
Scanner sc = new Scanner(System.in);
int x = 0;
while(sc.hasNextInt()) { //也可替换为sc.hasNext()
x += sc.nextInt(); //也可替换为Integer.parseInt(sc.next())
}
System.out.println(x);
sc.close();
解法2:可处理样例输入输出2
Scanner sc = new Scanner(System.in);
int x = 0;
while(sc.hasNextLine()) { //也可替换为sc.hasNext()
x += sc.nextIntLine(); //也可替换为Integer.parseInt(sc.next())
}
System.out.println(x);
sc.close();
注意:
- 当使用
hasNextInt()
时,在Eclipse中测试的时候,程序不会停止。但是在PTA可正常提交。 - 一般来说
hasNext()
与next()
、hasNextInt()
与nextInt()
、hasNextLine()
与nextLine()
配合使用,其他依次类推。
类型3:输入中可能包含不同类型的数据
如果所处题目样例输入中可能要对出现的数字、字符串、bool类型数据区别对待,并且这些数据出现无规律。
可尝试使用Scanner的next()
方法,先将其转换字符串再进行处理。
其他PTA相关文章:
PTA中如何出Java题目?的更多相关文章
- PTA中如何出Java编程题?
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考. 有多种类型输入的编程题: 类型1:固定数量输入 从控制台读入**两个**数,然后将其相加输出. 对于 ...
- PTA中提交Java程序的一些套路
201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...
- 原创:从海量数据中查找出前k个最小或最大值的算法(java)
现在有这么一道题目:要求从多个的数据中查找出前K个最小或最大值 分析:有多种方案可以实现.一.最容易想到的是先对数据快速排序,然后输出前k个数字. 二.先定义容量为k的数组,从源数据中取出前k个填 ...
- java中从1000万个随机数中查找出相同的10万个随机数花的最少时间
偶然在群里看到有人问到大数据查询,自己也就想了小艾改如何解决,从从1000万个随机数中查找出相同的10万个随机数花的最少时间, 谈到效率,自然是hashmap莫属. import java.util. ...
- 找出Java进程中大量消耗CPU
原文:https://github.com/oldratlee/useful-shells useful-shells 把平时有用的手动操作做成脚本,这样可以便捷的使用. show-busy-java ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
- java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载
从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...
- ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗? :当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而 ...
- AJPFX总结关于Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [^(0-9)] (3) 过滤出 中文 的正则 ...
随机推荐
- Git撤销commit消息保留修改
有时候commit后发现commit信息错了或者是添加了不想commit的内容,但还没有push到远程仓库 这个时候 git reset --soft [commit_id] 就可以回滚到某一个com ...
- 字符串分割方法split()函数
>>> data = '1000,小甲鱼,男'>>> data.split(',')['1000', '小甲鱼', '男'] str.split('以什么为标志进行 ...
- STL之map排序
描述 STL的map中存储了字符串以及对应出现的次数,请分别根据字符串顺序从小到大排序和出现次数从小到大排序. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { ...
- Xshell5下利用sftp上传下载传输文件
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH ...
- react源代码重点难点分析
网上已经有不少react源码分析文档,但都是分析主流程和主要功能函数,没有一个是从reactDOM.render()入口开始分析源码把流程走通尤其是把复杂重要的细节环节走通直到把组件template编 ...
- 顺序或者说优先级的重要性---解决dom生成问题有感
我们的大脑有逻辑,程序也有逻辑,只要一切都刚刚好,那么我们大脑的逻辑和程序的逻辑是没有冲突的:但是,有时候,我们想当然,只顾自己头脑中的逻辑,而随意臆想程序的逻辑,这个时候,就会有很多我们觉得不可思议 ...
- ssh爆破(python脚本)
最近在乌云看到一份端口详解:为了锻炼自己,按照端口详解写脚本 #!/usr/local/bin/ python # -*- coding: UTF-8 -*- __author__ = 'yangxi ...
- [HNOI 2002]营业额统计
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- [NOI 2016]区间
Description 在数轴上有 $n$ 个闭区间 $[l_1,r_1],[l_2,r_2],...,[l_n,r_n]$.现在要从中选出 $m$ 个区间,使得这 $m$ 个区间共同包含至少一个位置 ...
- 【BZOJ1060】【ZJOI2007】时态同步
Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板 ...