Java如何实现通过键盘输入一个数组

网友投稿 364 2022-08-28


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];//ihttp://nt 数组,长度为字符串数组的长度,用于控制数组长度

for(int j = 0; j

b[j] = Integer.parseInt(arr[j]);//录入数据到数组中

System.out.println(b[j]+" ");//打印出来

}

通过这样我们就能通过键盘输入,结果如下:

第二种方法:(限制输入的个数)

System.out.println(“请输入三个数:”);

ScakzfYARodKnner in = new Scanner(System.in);

int[] b=new int[3];

for(int i=0;i

b[i]=in.nextInt();

}

顺便说明一下SkzfYARodKcanner类中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)

{kzfYARodK //被查找的建要么不存在,要么必然存在于a[lo..hi]之中

int mid = lo + (hi - lo)/2;

if (key

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[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);

}

}

}

b[j] = Integer.parseInt(arr[j]);//录入数据到数组中

System.out.println(b[j]+" ");//打印出来

}

通过这样我们就能通过键盘输入,结果如下:

第二种方法:(限制输入的个数)

System.out.println(“请输入三个数:”);

ScakzfYARodKnner in = new Scanner(System.in);

int[] b=new int[3];

for(int i=0;i

b[i]=in.nextInt();

}

顺便说明一下SkzfYARodKcanner类中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)

{kzfYARodK //被查找的建要么不存在,要么必然存在于a[lo..hi]之中

int mid = lo + (hi - lo)/2;

if (key

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[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);

}

}

}

b[i]=in.nextInt();

}

顺便说明一下SkzfYARodKcanner类中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)

{kzfYARodK //被查找的建要么不存在,要么必然存在于a[lo..hi]之中

int mid = lo + (hi - lo)/2;

if (key

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[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);

}

}

}

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[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);

}

}

}

{

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);

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:编写第一个Flask程序(基于flask的开源项目)
下一篇:认识Flask与配置安装环境详细步骤(flask环境搭建)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~