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); } } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java Scanner的使用和hasNextXXX()的用法說明
- 新手初學Java流程控制
- java輸入空行結束問題
- 在Java中Scanner的用法總結
- Java中BufferedReader與Scanner讀入的區別詳解