Java怎么实现通过键盘输入一个数组
短信预约 -IT技能 免费直播动态提醒
本篇内容介绍了“Java怎么实现通过键盘输入一个数组”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
如何通过键盘输入一个数组
有时候在编写Jave的时候需要键盘输入一个数组,本小白也是看了几篇博客后才知道了如何在自己的程序中进行键盘输入,直接上代码:
第一种方法:(不限制输入数组的长度)
System.out.println(“请输入几个数并用逗号隔开:”);Scanner sc = new Scanner(System.in);String str = sc.next().toString();//定义一个字符str用于在输入数后面String[] arr = str.split(",");//字符串数组,存放逗号","int[] b = new int[arr.length];//int 数组,长度为字符串数组的长度,用于控制数组长度for(int j = 0; j<b.length;j++) {b[j] = Integer.parseInt(arr[j]);//录入数据到数组中System.out.println(b[j]+" ");//打印出来}
通过这样我们就能通过键盘输入,结果如下:
第二种方法:(限制输入的个数)
System.out.println(“请输入三个数:”);Scanner in = new Scanner(System.in);int[] b=new int[3];for(int i=0;i<b.length;i++){b[i]=in.nextInt();}
顺便说明一下Scanner类中next()与nextLine()方法的区别:
next()与nextLine()区别很明确,next() 方法遇见第一个有效字符(不是空格和换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,也就是说使用next()方法获得的是不含空格和换行符的单个字符串。
而使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。
不限制从键盘输入一个数组
下面用二分查找举例
package com.基础;import java.util.Scanner;public class 二分查找 {public static int rank(int key,int[] a){//数组必须是有序的int lo = 0;int hi = a.length-1;while(lo<=hi){//被查找的建要么不存在,要么必然存在于a[lo..hi]之中int mid = lo + (hi - lo)/2;if (key<a[mid])hi = mid -1;else if (key>a[mid])lo = mid +1;else return mid;}return -1;}public static void main(String[] args){Scanner in = new Scanner(System.in);System.out.println("请输入一行数组:");//从键盘接收数据,String str = in.next().toString();//输入当成字符串,数之间用“,”隔开String[] arr = str.split(",");//以“,”把字符串分成数组int[] b = new int[arr.length];//创建一个arr数组长度的数组for(int j = 0;j<b.length;j++){b[j] = Integer.parseInt(arr[j]); //把arr数组数赋值到b数组中}System.out.println("请输入要查询的数:");int key = in.nextInt();int position = rank(key,b);if(position == -1) {System.out.println("查找的是"+key+",序列中没有该数!");}else {System.out.println("查找的是"+key+"找到的位置为:"+position);}}}
“Java怎么实现通过键盘输入一个数组”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341