很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的。写一篇文章供大家参考。

有多种类型输入的编程题:

类型1:固定数量输入

从控制台读入**两个**数,然后将其相加输出。

对于该题可以有如下两种样例输入输出:

样例输入输出1:
输入:
1 2
输出:
3 或者 样例输入输出2:
输入:
1
2
输出:
3

注意:

  1. 样例输入对应着输入文件中的内容,比如对应着输入文件0.in,一般来说该文件的最后还要有一个回车,比如1 2后面应有一个回车。
  2. 样例输出对应着输出文件的内容,比如对应着输出文件0.out
  3. 文件必需使用UTF-8格式编码,回车换行要使用Linux的回车换行。可以使用Notepad++进行处理。
  4. 不要出现中文!不管是输入文件、输出文件还是学生提交的代码。

对以上题目有几种解法:

解法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();

注意:

  1. 以上所有处理方法都必须先import java.util.Scanner
  2. 代码中尽量不要将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();

注意:

  1. 当使用hasNextInt()时,在Eclipse中测试的时候,程序不会停止。但是在PTA可正常提交。
  2. 一般来说hasNext()next()hasNextInt()nextInt()hasNextLine()nextLine()配合使用,其他依次类推。

类型3:输入中可能包含不同类型的数据

如果所处题目样例输入中可能要对出现的数字、字符串、bool类型数据区别对待,并且这些数据出现无规律。

可尝试使用Scanner的next()方法,先将其转换字符串再进行处理。

其他PTA相关文章:

PTA中提交Java程序的一些套路

PTA分享码-Java

最新文章

  1. 关于rc.local
  2. JDBC编程
  3. linux 常用技巧
  4. struts 的问题是由于没有写的name有缺少的项,没有完全对应
  5. 在CentOS6.5上安装Tomcat6
  6. php编译安装参数说明
  7. RFID第二次作业
  8. SpringMVC——项目启动时从数据库查询数据
  9. List的方法和属性 方法或属性 作用
  10. linux的学习系列 6---打印文件和发送邮件
  11. Block Demo
  12. Error处理:Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack tra
  13. 最长滑道问题(非递归,C++)
  14. findHomography(src_points, dst_points, CV_RANSAC)
  15. Pool多进程示例
  16. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
  17. awk 和 sed (Stream Editor)
  18. Linux命令对应的英文全称
  19. C语言复习---迭代法,牛顿迭代法,二分法求根
  20. elasticsearch数据转移,elasticdump的安装使用

热门文章

  1. CRC-CCITT CRC-16
  2. day 02 预科
  3. sublime text3常用的一些快捷键
  4. PHP三种输出的不同类型
  5. NGINX并发量优化
  6. 关于base64编码Encode和Decode编码的几种方式
  7. 算法- 求解最大平均值的子树-经典dfs题目
  8. 当电脑上有两个mysql时,如何让jmeter连接自己需要的那个mysql
  9. 使用Visual studio查看exe或DLL文件的依赖项
  10. debug版本的DLL调用release版本的DLL引发的一个问题