弄清楚next(),nextLine(),nextInt()--大总结;
2016-08-02 23:03
561 查看
今天笔试又遇到输入问题,有时候这是个大问题,搞清楚!!!很重要,查了资料网上说的不全,不清楚,特总结。欢迎交流。
1.先总结,说说到底是啥!
这些可以认为是一类,首先这些都是“阻塞式的”,意思就是如果遇到空格,Tab,Enter,会继续等待,直到获得相应类型相应的值!!!!!
而且!!焦点不会移动到下一行,仍然处在这一行上。
2.例子:
先自己测试下吧,印象深刻!!!!
下面以一个例子仔细解释下:
例2:
先总结注意点;
如果一开始输入了空格,Tab,Enter,那么会继续等待!!!!直到获取值。
另外一类是nextLine():当使用nextLine()方法时会读取改行从前到的所有的内容,包括换行符,然后把焦点移动到下一行的开头。也就是可以把空格,回车读出值为空!!1
分析:
当输入1 2(2前有空格)后
把1读入---存储到tString
所以输出str=空
如果此时再按回车,那么继续往下执行!!
我想你已经明白了!!!
2.总结:
对于数组循环建议使用nextInt()等类型
对于读取一行值然后继续处理--使用nextLine()
实用技巧:读数组--赋值
先给输入输出样例:
输入:
4 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
输出
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
nextLine()样例:求解最后一个单词的长度
输入:abd dc fd f good
输出:4
1.先总结,说说到底是啥!
next(),nextInt(),nextDouble()....
这些可以认为是一类,首先这些都是“阻塞式的”,意思就是如果遇到空格,Tab,Enter,会继续等待,直到获得相应类型相应的值!!!!!
而且!!焦点不会移动到下一行,仍然处在这一行上。
next()---String,nextInt()----int,nextDouble()----double....
2.例子:
package com.demo; import java.util.Scanner; public class NEXT { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入一个整数"); while(in.hasNextLine()){ String tString = in.next(); int num = in.nextInt(); // System.out.println("请输入一个字符串"); // String str = in.nextLine(); System.out.println("num:"+num); String str = in.next(); System.out.println("num="+num+",str="+str); String s3 = in.nextLine(); System.out.println("s3:"+s3); } } }
先自己测试下吧,印象深刻!!!!
下面以一个例子仔细解释下:
例2:
先总结注意点;
如果一开始输入了空格,Tab,Enter,那么会继续等待!!!!直到获取值。
另外一类是nextLine():当使用nextLine()方法时会读取改行从前到的所有的内容,包括换行符,然后把焦点移动到下一行的开头。也就是可以把空格,回车读出值为空!!1
package com.demo; import java.util.Scanner; public class NEXT { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNextLine()){ String tString = in.next(); System.out.println(tString); int num = in.nextInt(); String str = in.nextLine(); System.out.println("num:"+num); System.out.println("num="+num+",str="+str); String s3 = in.nextLine(); System.out.println("s3:"+s3); } } }
分析:
当输入1 2(2前有空格)后
String tString = in.next();
把1读入---存储到tString
int num = in.nextInt();当读到上面时候,有一个空格,阻塞--继续往后读,读到了2,好的光标停止在当前行尾
String str = in.nextLine();下面执行上面关键的一行,光标现在在结尾,前面的值已经被读走,现在
in.nextLine();读取包括回车在内的以及其前面存在的值!!!!----为空----光标位置移到下一行首,等待取值!!
所以输出str=空
如果此时再按回车,那么继续往下执行!!
String s3 = in.nextLine();读取包括回车在内的当前行,仍然为空。
我想你已经明白了!!!
2.总结:
对于数组循环建议使用nextInt()等类型
对于读取一行值然后继续处理--使用nextLine()
实用技巧:读数组--赋值
先给输入输出样例:
输入:
4 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
输出
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
import java.util.Scanner; public class TestArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int row = scanner.nextInt(); int col = scanner.nextInt(); int[][] matrix = new int[row][col]; for (int i = 0; i < row * col; i++) { matrix[i / col][i % col] = scanner.nextInt(); } for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { System.out.print(matrix[i][j]+" "); } } } scanner.close(); } }
nextLine()样例:求解最后一个单词的长度
输入:abd dc fd f good
输出:4
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String s=""; while(input.hasNextLine()){ s=input.nextLine(); System.out.println(s.length()-1-s.lastIndexOf(" ")); } } }
相关文章推荐
- Scanner的next,nextint和nextLine的使用总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Scanner的next,nextint和nextLine的使用总结
- next、nextInt、nextDouble、nextFloat和nextLine的区别。
- java中next(),nextInt()和nextLine()
- 15、Scanner的next、nextLine方法 与 \r、\n 的一点思考和总结
- Java中关于nextInt()、next()和nextLine()的理解
- JavaSE--next(),nextInt(),nextLine()方法对比
- 以OJ2024C语言合法标识符介绍java中Scanner类中nextLine()方法与next()或nextInt()
- Java中关于nextInt()、next()和nextLine()的理解
- java问题:不要在nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()、next()之后使用nextLine()
- Scanner类中nextLine()方法与next()或nextInt()联用时可能出现一个常见的错误
- Java中关于nextInt()、next()和nextLine()
- 总结Java中的next()和nextLine()方法的区别
- java中的nextInt(),next()和nextLine()
- Java中关于nextInt()、next()和nextLine()的理解
- nextInt()、nextline()、next()
- Scanner类中nextLine()和next(),nextInt()等等的区别。