首頁 > 軟體

Java如何實現通過鍵盤輸入一個陣列

2022-02-15 19:00:27

如何通過鍵盤輸入一個陣列

有時候在編寫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);
		}
	}
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com