scanner输入多行字符串,java scanner连续输入
目录
问题最好解决的情况单行输入多个参数多行输入多个参数,每行参数个数不定
问题
解决这种情况下的扫描仪输入:单行,多行,数值,字符串
平时写程序一般不用Scanner,线上笔试的时候,各大公司热衷于Scanner输入。平时用LeetCode刷题也不会用到,结果多次在笔试时候卡在Scanner,特来总结一波。
最好解决的情况
多行输入元素,其中第一行几个数字表示下面几行的个数。以三行输入为例,第一行输入两个数字男,女,分别表示数组num1和num2的长度,第二行和第三行输入num1和num2的元素,以空格分隔。
//输入如下3 410 2 311 4 5 6
程序如下:
导入Java。util。数组;导入Java。util。扫描仪;公共类我的扫描仪{ Scanner sc=新扫描仪(系统。在);public static void main(String[]args){ system。出去。println(输入:);扫描仪sc=新扫描仪(系统。在);int m=sc。nextint();int n=sc。nextint();int[]num 1=new int[m];int[]num 2=new int[n];//换成其他数据类型也一样,其他数值类型就修改(同国际组织)国际组织跟整形就可以了,//字符串就把nextInt()换成next()for(int I=0;我是m;I){ num 1[I]=sc。nextint();//一个一个读取} for(int I=0;I n;I){ num 2[I]=sc。nextint();} System.out.println(输出:);系统。出去。println(数组。tostring(num 1));系统。出去。println(数组。tostring(num 2));}}运行示例:
换成其他数据类型也一样,其他数值类型就修改(同国际组织)国际组织跟整形就可以了,字符串就把nextInt()换成下一个()
单行输入多个参数
在一行输入多个参数以空格(也可用其他的符号,不重要)为分割。
//输入如下ABB CCC DDD EEE 123 435
程序如下:
导入Java。util。数组;导入Java。util。扫描仪;公共类我的扫描仪{ Scanner sc=新扫描仪(系统。在);public static void main(String[]args){ system。出去。println(输入:);扫描仪sc=新扫描仪(系统。在);字符串str=sc。next line();//读取一行System.out.println(输出:);系统。出去。println(str);String[] strIn=str.trim().拆分("");//以空格分割系统。出去。println(数组。tostring(strIn));}}读出来的只能是字符串,如果想全部为数字,需要将读出来的字符串强行转换为数字(parseInt、parseLong等),运行示例如下:
多行输入多个参数,每行参数个数不定
每行输入不等数量的参数这种情况下,或者可以从题干直接确定行数,或者能够从输入的第一行输入的某个参数确定下面还有几行。
以后者为例进行说明,假设第一行输入男,女,男表示后面有英语字母表中第十三个字母行,n表示每行最多有n个(可用来截断某一行多输入的参数,不详细分析了)。
//输入如下BBA公元前123年
程序如下:
导入Java。util。ArrayList导入Java。util。数组;导入Java。util。扫描仪;公共类我的扫描仪{ Scanner sc=新扫描仪(系统。在);public static void main(String[]args){ system。出去。println(输入:);扫描仪sc=新扫描仪(系统。在);int m=sc。nextint();即next line();//很重要,跳到第二行//若直接确定行数,注释掉上面两行,加入下面一行//int m=3;String[] strArr=新字符串[m];//从第二行开始读取for(int I=0;我是m;I){ strArr[I]=sc。next line();}System.out.println(输出:);系统。出去。println(数组。tostring(strArr));ArrayList string[]str tone=new ArrayList string[]();for(int I=0;我是m;{String[] tmp=strArr[i].修剪()。拆分("");斯通。添加(tmp);}系统。出去。println(strtone);//形象点显示系统。出去。打印([);for(int I=0;我听到一个声音。size();I){系统。出去。打印(数组。tostring(str音调。get(I)));如果(我!=str音。size()-1)系统。出去。打印(,);}系统。出去。打印(]);}}运行结果如下:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。