51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【Java 基础】Java-[Arrays,Scanner,Math,RanDom] 复习

Arrays {#Arrays}

概述 {#概述}

java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。

常用方法 {#常用方法}

  • public static String toString(int[] a) :返回指定数组内容的字符串表示形式。

代码示例 {#代码示例}

public static void main(String[] args) {
	// 定义 int 数组
	int[] arr = {2, 34, 35, 4, 657, 8, 69, 9};
	// 打印数组, 输出数组地址
	System.out.println("arr =" + arr);// arr = [I@1b6d3586
	// 数组内容转换为字符串
	String s = Arrays.toString(arr);
	// 打印字符串, 输出内容
	System.out.println("s =" + s); // s = [2, 34, 35, 4, 657, 8, 69, 9]
}
  • public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。

代码示例 {#代码示例 -1}

public static void main(String[] args) {
	// 定义 int 数组
	int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
    // 24, 7, 5, 48, 4, 46, 35, 11, 6, 2
	System.out.println("排序前 =" + Arrays.toString(arr)); 

    <span class="token comment">// 升序排序</span>
    <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span>arr<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 2, 4, 5, 6, 7, 11, 24, 35, 46, 48</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"排序后 ="</span> <span class="token operator">+</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>arr<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>



}

  • public static <T> void sort(T[] a, Comparator<? super T> c): 对指定的 int 型数组按数字降序进行排序。
public static void main(String[] args) {
	// 定义 int 数组
	int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
    // 24, 7, 5, 48, 4, 46, 35, 11, 6, 2		
	System.out.println("排序前 =" + Arrays.toString(arr)); 
	// 降序排序
	Arrays.sort(new int[][]{arr}, Collections.reverseOrder());
	// 24, 7, 5, 48, 4, 46, 35, 11, 6, 2
	System.out.println("排序后 =" + Arrays.toString(arr));
}   

练习 {#练习}

需求: 将一个随机字符串中的所有字符升序排列,并倒序打印。

public class ArraysDemo3 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个随机字符串:");
		String s = scanner.nextLine();
		// 转换为字符数组
		char[] chars = s.toCharArray();
		// 升序排序
		Arrays.sort(chars);
		// 反向遍历打印
		for (int i = chars.length - 1; i >= 0; i--) {
			System.out.print(chars[i] + "");
		}
	}
}

Scanner {#Scanner}

什么是 Scanner 类? {#什么是 Scanner 类}

一个可以解析基本数据类型和字符串的简单文本扫描器;

调用方法 {#调用方法}

接下来需要明确方法的功能,如果方法是实例方法,需要创建对象来访问,如果方法是静态方法可以直接用类名来调用。

例如:Scanner 类方法如下:

public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

该方法为实例方法需要创建对象来调用,查看构造器如下:

public Scanner(InputStream source) : 
// 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。查看成员方法

使用 Scanner 类,完成接收键盘录入数据的操作,代码如下:

public class ScannerDemo {
    public static void main(String[] args) {
        //1. 创建键盘录入数据的对象
        Scanner sc = new Scanner(System.in);
        //2. 接收数据
        System.out.println("请录入一个整数:");
        int i = sc.nextInt();
        //3. 输出数据
        System.out.println("用户输入的数值 = :" + i);
    }
}

练习 {#练习 -1}

package com.mobaijun.day05;

import java.util.Scanner;


/**

`
`
* @Author: Auser·杰


* Development: IntelliJ IDEA 2018.2.4 x64


* ClassName: ScannerDemo2


* ClassCreateDate: 2020/5/2 17:41



* `类简介: 接收键盘录入三个随机数并获取最大值
  */``
  `public` `class` `ScannerDemo2` `{`
  `public` `static` `void` `main(String[]` args`)` `{`
  `// 1. 创建 scanner 对象`
  `Scanner` sc `=` `new` `Scanner(System.`in`);`
  `// 提示用户输入`
  `System.`out`.println("请输入三个随机数:");`
  `// 2. 接收用户键盘录入`
  `// 接收第一个数值`
  `System.`out`.println("请输入第一个随机数");`
  `int` i1 `=` sc`.nextInt();`
  `System.`out`.println("第一个随机数是 +"` `+` i1`);`
  `// 接收第二个数值`
  `System.`out`.println("请输入第二个随机数");`
  `int` i2 `=` sc`.nextInt();`
  `System.`out`.println("第二个随机数是 +"` `+` i2`);`
  `// 接收第三个数值`
  `System.`out`.println("请输入第三个随机数");`
  `int` i3 `=` sc`.nextInt();`
  `System.`out`.println("第三个随机数是 +"` `+` i3`);`
  `// 使用三元运算符获取最大值`
  `int` max `=` i1 `>` i2 `?` i1 `:` i2`;`
  max `=` max `>` i3 `?` max `:` i3`;`
  `System.`out`.println("最大值是 ="` `+` max`);`
  `}`
  `}

Math {#Math}

java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

基本运算的方法 {#基本运算的方法}

  • public static double abs(double a) :返回 double 值的绝对值。
public static void main(String[] args) {
	double d1 = Math.abs(-5);
	System.out.println("d1 =" + d1); // d1 = 5.0
	double d2 = Math.abs(5);
	System.out.println("d2 =" + d2); // d2 = 5.0
}
  • public static double ceil(double a) :返回大于等于参数的最小的整数。
System.out.println("d3 =" + d3); // d3 = 4.0
double d4 = Math.ceil(-3.3);
System.out.println("d4 =" + d4); // d4 = -3.0
double d5 = Math.ceil(5.1);
System.out.println("d5 =" + d5); //d 5 = 6.0
  • public static double floor(double a) :返回小于等于参数最大的整数。
double d6 = Math.floor(3.3);
System.out.println("d6 =" + d6); // d7 = -4.0
double d7 = Math.floor(-3.3);
System.out.println("d7 =" + d7);// d7 = -4.0
double d8 = Math.floor(5.1);
System.out.println("d8 =" + d8); // d8 = 5.0
  • public static long round(double a) :返回最接近参数的 long。(相当于四舍五入方法)
long d1 = Math.round(5.5);
System.out.println("d1 =" + d1); // d1 = 6
long d2 = Math.round(5.4);
System.out.println("d2 =" + d2); // d2 = 5

练习 {#练习 -2}

请使用Math 类,计算在 -10.85.9 之间,绝对值大于6 或者小于2.1 的整数有多少个?

Random {#Random}

此类的实例用于生成伪随机数,在实际开发中,通常用于在程序中生产一个随机数。

Random 使用案例 {#Random 使用案例}

一: {#一}

需求:使用 Random 类,完成生成 3 个 10 以内的随机整数的操作

备注: 创建一个 Random 对象,每次调用 nextInt() 方法,都会生成一个随机数。调用 nextInt(int n) 方法,会生成一个 0-n(不包含 n)的随机数。

public static void main(String[] args) {
		// 创建一个随机数对象
		Random random = new Random();

    	<span class="token comment">// 循环遍历随机数</span>
    	<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> j <span class="token operator">&lt;</span> <span class="token number">3</span><span class="token punctuation">;</span> j<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    		<span class="token comment">// 调用 nextInt()方法得到一个 10 以内的随机整数</span>
    		<span class="token keyword">int</span> i <span class="token operator">=</span> random<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    		<span class="token comment">// 打印随机数</span>
    		<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">""</span> <span class="token operator">+</span> i<span class="token punctuation">)</span><span class="token punctuation">;</span>
    	<span class="token punctuation">}</span>
    <span class="token punctuation">}</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>



 
#### 二: {#二}


 
>   需求:获取 1-n 之间的随机数,包含 n
>
>  

 
```java
public static void main(String[] args) {
		// 定义最大值变量
		int num = 10;
		// 生成随机数对象
		Random random = new Random();
		// 循环遍历随机数
		for (int i = 0; i < 3; i++) {
			// 随机数 +1
			int n = random.nextInt(num) + 1;
			// 打印随机数
			System.out.print("" + n);
		}
	}

```


 
#### 三: {#三}


 
>   需求:猜数字小游戏
> 游戏开始时,会随机生成一个 1-10 之间的整数 number 。玩家猜测一个数字 guessNumber ,会与 number 作比较,系统提示大了或者小了,直到玩家猜中,游戏结束。
> 小贴士:先运行程序代码,理解此题需求,经过分析后,再编写代码。
>
>  

 
```java
import java.util.Random;
import java.util.Scanner;

/**

`
`
* Software:IntelliJ IDEA 2018.2.4 x64


* Author: MoBai·杰


* Date: 2020/5/3 16:17


* ClassName:RanDomDemo4


* 类描述:


* (1) 游戏开始


* (2) 随机生成一个 1-100 之间的整数 number 。



* `(3) 玩家必须反复的猜测,直到猜中为主。
  */``
  `public` `class` `RanDomDemo4` `{`
  `public` `static` `void` `main(String[]` args`)` `{`
  `// 创建 scanner 对象接收用户键盘录入`
  `Scanner` scanner `=` `new` `Scanner(System.`in`);`
  `System.`out`.println("游戏开始:");`
  `// 随机生成一个 1-100 之间的整数 number 。`
  `Random` random `=` `new` `Random();`
  `// 调用它的 nextInt(边界参数)得到随机数(1-100)`
  `int` number `=` random`.nextInt(100)` `+` `1;`
  `while` `(true)` `{`
  `System.`out`.println("请输入您要猜测的随机数:");`
  `int` getGussNumber `=` scanner`.nextInt();`
  `// 判断用户的猜测数字情况`
  `if` `(`getGussNumber `>` number`)` `{`
  `System.`out`.println("您猜测的数字过大");`
  `}` `else` `if` `(`getGussNumber `<` number`)` `{`
  `System.`out`.println("您猜测的数字过小");`
  `}` `else` `{`
  `System.`out`.println("恭喜您,您很棒哦,猜对了!");`
  `System.`out`.println("号码就是:"` `+` number`);`
  `break;`
  `}`
  `}`
  `}`
  `}

```



赞(0)
未经允许不得转载:工具盒子 » 【Java 基础】Java-[Arrays,Scanner,Math,RanDom] 复习