Java如何實(shí)現(xiàn)通過(guò)鍵盤(pán)輸入一個(gè)數(shù)組
如何通過(guò)鍵盤(pán)輸入一個(gè)數(shù)組
有時(shí)候在編寫(xiě)Jave的時(shí)候需要鍵盤(pán)輸入一個(gè)數(shù)組,本小白也是看了幾篇博客后才知道了如何在自己的程序中進(jìn)行鍵盤(pán)輸入,直接上代碼:
第一種方法:(不限制輸入數(shù)組的長(zhǎng)度)
System.out.println(“請(qǐng)輸入幾個(gè)數(shù)并用逗號(hào)隔開(kāi):”);
Scanner sc = new Scanner(System.in);
String str = sc.next().toString();//定義一個(gè)字符str用于在輸入數(shù)后面
String[] arr = str.split(",");//字符串?dāng)?shù)組,存放逗號(hào)","
int[] b = new int[arr.length];//int 數(shù)組,長(zhǎng)度為字符串?dāng)?shù)組的長(zhǎng)度,用于控制數(shù)組長(zhǎng)度
for(int j = 0; j<b.length;j++) {
b[j] = Integer.parseInt(arr[j]);//錄入數(shù)據(jù)到數(shù)組中
System.out.println(b[j]+" ");//打印出來(lái)
}通過(guò)這樣我們就能通過(guò)鍵盤(pán)輸入,結(jié)果如下:

第二種方法:(限制輸入的個(gè)數(shù))
System.out.println(“請(qǐng)輸入三個(gè)數(shù):”);
Scanner in = new Scanner(System.in);
int[] b=new int[3];
for(int i=0;i<b.length;i++){
b[i]=in.nextInt();
}順便說(shuō)明一下Scanner類中next()與nextLine()方法的區(qū)別:
next()與nextLine()區(qū)別很明確,next() 方法遇見(jiàn)第一個(gè)有效字符(不是空格和換行符)時(shí),開(kāi)始掃描,當(dāng)遇見(jiàn)第一個(gè)分隔符或結(jié)束符(空格或換行符)時(shí),結(jié)束掃描,獲取掃描到的內(nèi)容,也就是說(shuō)使用next()方法獲得的是不含空格和換行符的單個(gè)字符串。
而使用nextLine()時(shí),則可以掃描到一行內(nèi)容并作為一個(gè)字符串而被獲取到。
不限制從鍵盤(pán)輸入一個(gè)數(shù)組
在寫(xiě)算法的時(shí)候,需要從鍵盤(pán)輸入一個(gè)數(shù)組,一直不會(huì),最近看了幾篇博客學(xué)會(huì)了
下面用二分查找舉例
package com.基礎(chǔ);
import java.util.Scanner;
public class 二分查找 {
public static int rank(int key,int[] a)
{ //數(shù)組必須是有序的
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("請(qǐng)輸入一行數(shù)組:");//從鍵盤(pán)接收數(shù)據(jù),
String str = in.next().toString();//輸入當(dāng)成字符串,數(shù)之間用“,”隔開(kāi)
String[] arr = str.split(",");//以“,”把字符串分成數(shù)組
int[] b = new int[arr.length];//創(chuàng)建一個(gè)arr數(shù)組長(zhǎng)度的數(shù)組
for(int j = 0;j<b.length;j++)
{
b[j] = Integer.parseInt(arr[j]); //把a(bǔ)rr數(shù)組數(shù)賦值到b數(shù)組中
}
System.out.println("請(qǐng)輸入要查詢的數(shù):");
int key = in.nextInt();
int position = rank(key,b);
if(position == -1) {
System.out.println("查找的是"+key+",序列中沒(méi)有該數(shù)!");
}else {
System.out.println("查找的是"+key+"找到的位置為:"+position);
}
}
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn)
項(xiàng)目需要用到一個(gè)Jar包,不能從遠(yuǎn)程倉(cāng)庫(kù)拉取,只有一個(gè)Jar包,所以需要將Jar包打入到本地倉(cāng)庫(kù)才能引入項(xiàng)目,本文主要介紹了Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
java如何將可運(yùn)行jar打包成exe可執(zhí)行文件
Java程序完成以后,對(duì)于Windows操作系統(tǒng)習(xí)慣總是想雙擊某個(gè)exe文件就可以直接運(yùn)行程序,這篇文章主要給大家介紹了關(guān)于java如何將可運(yùn)行jar打包成exe可執(zhí)行文件的相關(guān)資料,需要的朋友可以參考下2023-11-11
Spring中校驗(yàn)器(Validator)的深入講解
Spring校驗(yàn)器,參數(shù)校驗(yàn)從此簡(jiǎn)單。下面這篇文章主要給大家介紹了關(guān)于Spring中校驗(yàn)器(Validator)的相關(guān)資料,文中通過(guò)示例代碼介紹非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06
Java中的Static class詳解及實(shí)例代碼
這篇文章主要介紹了 Java中的Static class詳解及實(shí)例代碼的相關(guān)資料,在Java中我們可以有靜態(tài)實(shí)例變量、靜態(tài)方法、靜態(tài)塊。類也可以是靜態(tài)的,需要的朋友可以參考下2017-03-03
簡(jiǎn)單講解Java設(shè)計(jì)模式編程中的單一職責(zé)原則
這篇文章主要介紹了Java設(shè)計(jì)模式編程中的單一職責(zé)原則,這在團(tuán)隊(duì)開(kāi)發(fā)編寫(xiě)接口時(shí)經(jīng)常使用這樣的約定,需要的朋友可以參考下2016-02-02
JDK8配置環(huán)境變量的bat文件的詳細(xì)教程
這篇文章主要介紹了JDK8配置環(huán)境變量的bat文件,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
深入淺析Mybatis與Hibernate的區(qū)別與用途
這篇文章主要介紹了Mybatis與Hibernate的區(qū)別與用途的相關(guān)資料,需要的朋友可以參考下2017-10-10
SpringBoot集成Redis并實(shí)現(xiàn)主從架構(gòu)的實(shí)踐
本文主要和大家分享一下在springboot中如何集成redis,并實(shí)現(xiàn)主從架構(gòu),進(jìn)行數(shù)據(jù)的簡(jiǎn)單存儲(chǔ),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
使用sharding-jdbc實(shí)現(xiàn)水平分表的示例代碼
本文主要介紹了sharding-jdbc實(shí)現(xiàn)水平分表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

