1. 程式人生 > >Scanner類、Random類、ArrayList 類

Scanner類、Random類、ArrayList 類

put 猜數字 應用 系統 素數 test bre span scan

1.1 什麽是Scanner類
一個可以解析基本類型和字符串的簡單文本掃描器。 例如,以下代碼使用戶能夠從 System.in 中讀取一個數:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

備註:System.in 系統輸入指的是通過鍵盤錄入數據。
1.2 引用類型使用步驟
導包
使用import關鍵字導包,在類的所有代碼之前導包,引入要使用的類型,java.lang包下的所有類無需導入。 格式:

import 包名.類名;
舉例:

java.util.Scanner;


創建對象
使用該類的構造方法,創建一個該類的對象。 格式:

數據類型 變量名 = new 數據類型(參數列表);

舉例:

Scanner sc = new Scanner(System.in);
調用方法
調用該類的成員方法,完成指定功能。 格式:
舉例:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
import 包名.類名;
java.util.Scanner;
數據類型 變量名 = new 數據類型(參數列表);
Scanner sc = new Scanner(System.in);
變量名.方法名();

2.3 Scanner使用步驟
查看類
java.util.Scanner :該類需要import導入後使用。
查看構造方法
public Scanner(InputStream source) : 構造一個新的 Scanner ,它生成的值是從指定的輸入流掃描的。
查看成員方法
public int nextInt() :將輸入信息的下一個標記掃描為一個 int 值。
使用Scanner類,完成接收鍵盤錄入數據的操作,代碼如下:

//1. 導包
import java.util.Scanner;
public class Demo01_Scanner {
public static void main(String[] args) {
//2. 創建鍵盤錄入數據的對象
Scanner sc = new Scanner(System.in);
//3. 接收數據
System.out.println("請錄入一個整數:");
int i = sc.nextInt();
//4. 輸出數據
System.out.println("i:"+i);
}
}


2.4 練習
求和
鍵盤錄入兩個數據並求和
代碼如下:

import java.util.Scanner;
public class Test01Scanner {
public static void main(String[] args) {
// 創建對象
Scanner sc = new Scanner(System.in);
// 接收數據
System.out.println("請輸入第一個數據:");
int a = sc.nextInt();
System.out.println("請輸入第二個數據:");

  int b = sc.nextInt();
// 對數據進行求和
int sum = a + b;
System.out.println("sum:" + sum);
}

}
取最值
鍵盤錄入三個數據並獲取最大值 代碼如下:

import java.util.Scanner;
public class Test02Scanner {
public static void main(String[] args) {
// 創建對象
Scanner sc = new Scanner(System.in);
// 接收數據
System.out.println("請輸入第一個數據:");
int a = sc.nextInt();
System.out.println("請輸入第二個數據:");
int b = sc.nextInt();
System.out.println("請輸入第三個數據:");
int c = sc.nextInt();
// 如何獲取三個數據的最大值
int temp = (a > b ? a : b);
int max = (temp > c ? temp : c);
System.out.println("max:" + max);
}
}

2.5 匿名對象【了解】
概念
創建對象時,只有創建對象的語句,卻沒有把對象地址值賦值給某個變量。雖然是創建對象的簡化寫法,但是應用
場景非常有限。
匿名對象 :沒有變量名的對象。
舉例:

作為參數:

class Test {
public static void main(String[] args) {
// 普通方式
Scanner sc = new Scanner(System.in);
input(sc);

//匿名對象作為方法接收的參數
input(new Scanner(System.in));
}

public static void input(Scanner sc) {
System.out.println(sc);
}
}

作為返回值

class Test2 {
public static void main(String[] args) {
// 普通方式
Scanner sc = getScanner();
}

public static Scanner getScanner() {
//普通方式
//Scanner sc = new Scanner(System.in);
//return sc;

//匿名對象作為方法返回值
return new Scanner(System.in);
}
}



第3章 Random類

查看類
java.util.Random :該類需要 import導入使後使用。
查看構造方法
public Random() :創建一個新的隨機數生成器。
查看成員方法
public int nextInt(int n) :返回一個偽隨機數,範圍在 0 (包括)和 指定值 n (不包括)之間的
int 值。
使用Random類,完成生成3個10以內的隨機整數的操作,代碼如下:

//1. 導包
import java.util.Random;
public class Demo01_Random {
public static void main(String[] args) {
//2. 創建隨機數的對象
Random r = new Random();
for(int i = 0; i < 3; i++){
//3. 隨機生成一個數據
int number = r.nextInt(10);
//4. 輸出數據
System.out.println("number:"+ number);
}
}
}

備註:創建一個 Random 對象,每次調用 nextInt() 方法,都會生成一個隨機數。

練習
獲取隨機數

獲取1-n之間的隨機數,包含n
代碼如下:

// 導包
import java.util.Random;
public class Test01Random {
public static void main(String[] args) {
int n = 50;
// 創建對象
Random r = new Random();
// 獲取隨機數
int number = r.nextInt(n) + 1;
// 輸出隨機數
System.out.println("number:" + number);
}
}


猜數字小遊戲
遊戲開始時,會隨機生成一個1-100之間的整數 number 。玩家猜測一個數字 guessNumber ,會與 number 作比
較,系統提示大了或者小了,直到玩家猜中,遊戲結束。
小貼士:先運行程序代碼,理解此題需求,經過分析後,再編寫代碼:

// 導包
import java.util.Random;
public class Test02Random {
public static void main(String[] args) {
// 系統產生一個隨機數1‐100之間的。
Random r = new Random();
int number = r.nextInt(100) + 1;
while(true){
// 鍵盤錄入我們要猜的數據
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要猜的數字(1‐100):");
int guessNumber = sc.nextInt();
// 比較這兩個數據(用if語句)
if (guessNumber > number) {
System.out.println("你猜的數據" + guessNumber + "大了");
} else if (guessNumber < number) {
System.out.println("你猜的數據" + guessNumber + "小了");
} else {
System.out.println("恭喜你,猜中了");
break;
}
}
}
}

第4章 ArrayList類

4.1 引入——對象數組
使用學生數組,存儲三個學生對象,代碼如下:

public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
publicvoid setName(String name) {
this.name = name;
}
publicint getAge() {
return age;
}
publicvoid setAge(int age) {
this.age = age;
}
}
public class Test01StudentArray {
public static void main(String[] args) {
//創建學生數組
Student[] students = new Student[3];
//創建學生對象
Student s1 = new Student("曹操",40);
Student s2 = new Student("劉備",35);
Student s3 = new Student("孫權",30);
//把學生對象作為元素賦值給學生數組
students[0] = s1;
students[1] = s2;
students[2] = s3;
//遍歷學生數組
for(int x=0; x<students.length; x++) {
Student s = students[x];
System.out.println(s.getName()+"‐‐‐"+s.getAge());
}
}
}

到目前為止,我們想存儲對象數據,選擇的容器,只有對象數組。而數組的長度是固定的,無法適應數據變化的需
求。為了解決這個問題,Java提供了另一個容器 java.util.ArrayList 集合類,讓我們可以更便捷的存儲和操作對
象數據。
4.2 什麽是ArrayList類
java.util.ArrayList 是大小可變的數組的實現,存儲在內的數據稱為元素。此類提供一些方法來操作內部存儲
的元素。 ArrayList 中可不斷添加元素,其大小也自動增長。
4.3 ArrayList使用步驟
查看類
java.util.ArrayList <E> :該類需要 import導入使後使用。
<E> ,表示一種指定的數據類型,叫做泛型。 E ,取自Element(元素)的首字母。在出現 E 的地方,我們使
用一種引用數據類型將其替換即可,表示我們將存儲哪種引用類型的元素。代碼如下:

ArrayList<String>,ArrayList<Student>


查看構造方法
public ArrayList() :構造一個內容為空的集合。


基本格式:

ArrayList<String> list = new ArrayList<String>();


在JDK 7後,右側泛型的尖括號之內可以留空,但是<>仍然要寫。簡化格式:

ArrayList<String> list = new ArrayList<>();


查看成員方法
public boolean add(E e) : 將指定的元素添加到此集合的尾部。
參數 E e ,在構造ArrayList對象時, <E> 指定了什麽數據類型,那麽 add(E e) 方法中,只能添加什麽數據
類型的對象。


使用ArrayList類,存儲三個字符串元素,代碼如下:

public class Test02StudentArrayList {
public static void main(String[] args) {
//創建學生數組
ArrayList<String> list = new ArrayList<>();
//創建學生對象
String s1 = "曹操";
String s2 = "劉備";
String s3 = "孫權";
//打印學生ArrayList集合

System.out.println(list);
//把學生對象作為元素添加到集合
list.add(s1);
list.add(s2);
list.add(s3);
//打印學生ArrayList集合
System.out.println(list);
}
}

4.4 常用方法和遍歷
對於元素的操作,基本體現在——增、刪、查。常用的方法有:
public boolean add(E e) :將指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被刪除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回獲取的元素。
public int size() :返回此集合中的元素數。遍歷集合時,可以控制索引範圍,防止越界。
這些都是最基本的方法,操作非常簡單,代碼如下

public class Demo01ArrayListMethod {
public static void main(String[] args) {
//創建集合對象
ArrayList<String> list = new ArrayList<String>();
//添加元素
list.add("hello");
list.add("world");
list.add("java");
//public E get(int index):返回指定索引處的元素
System.out.println("get:"+list.get(0));
System.out.println("get:"+list.get(1));
System.out.println("get:"+list.get(2));
//public int size():返回集合中的元素的個數
System.out.println("size:"+list.size());
//public E remove(int index):刪除指定索引處的元素,返回被刪除的元素
System.out.println("remove:"+list.remove(0));
//遍歷輸出
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}

如有更好需要,請聯系小Bin。我會為你服務的。

Scanner類、Random類、ArrayList 類