【第五章】Java API-常用类库(下)

目录

1.什么叫控制台?

[1.1 Scanner类](#1.1 Scanner类)

[1.2 交互尝试:模拟用户登录逻辑](#1.2 交互尝试:模拟用户登录逻辑)

2.随机数Random类

[2.1 使用Random可以生成随机数](#2.1 使用Random可以生成随机数)

[2.2 Random类:编程尝试](#2.2 Random类:编程尝试)

3.Math类

[3.1 常用方法](#3.1 常用方法)

[3.2 代码示例](#3.2 代码示例)

[3.3 Math类------动手尝试](#3.3 Math类——动手尝试)

[4 字符](#4 字符)

[4.1 字符Character](#4.1 字符Character)

[4.2 字符编码](#4.2 字符编码)

[4.3 字符与字符串](#4.3 字符与字符串)


1.什么叫控制台?

控制台 Console

在上个世纪,在图形界面出现之前的、一种基于文字的用户交互界面。

例如,windows仍保留了最古老的命令行界面(DOS)。。展示。

为什么要控制台这么古老的东西?

1 控制台在将来的正式开发中(公司里)不会用到

2 仅用于语法练习,模拟用户交互。

注:我们现在的重点不是界面是否好看

重点是语法、逻辑。

1.1 Scanner类

可以从各种输入源读取数据,包括控制台输入。

它可以解析基本类型和字符串的输入数据

使用方法:

Scanner scanner = new Scanner(System.in);

String input = scanner.nextLine();

int number = scanner.nextInt();

1.2 交互尝试:模拟用户登录逻辑

• 编写一个 Java 程序,模拟一个简单的登录界面。
• 程序首先向用户显示一个提示,要求用户输入用户名和密码。
• 然后,程序将输入的用户名和密码与预设的正确用户名和密码进行比较。
• 如果用户名和密码都正确,则打印一条欢迎消息;否则,打印一条错误消息并允许用户重试,最多重试 3 次。
• 如果 3 次都失败,则显示登录失败的消息。
• 输入说明

用户将被提示输入用户名和密码。

用户有3次输入尝试的机会.

•输出说明

如果用户名和密码正确,打印:"登录成功!欢迎,[用户名]!"

如果用户名或密码错误,打印:"用户名或密码错误,请重试。"

如果用户3次尝试都失败,打印:"登录失败,已达到最大尝试次数。"
• 实现提示

使用Scanner类从控制台读取输入。

设定一个正确的用户名和密码,用于登录验证。

使用循环实现最多3次的输入尝试。

使用条件语句判断用户输入是否正确。

2.随机数Random类

随机数在工程应用里时有用到。

例如,

牌类游戏:洗牌,每次开始游戏之前要把54张牌的顺序随机打乱。

又例如,

抽签功能:从若干个样本中投取几个样本。

(抽奖、摇号、抽签)

Random类是JDK里自带的基本类。

java.util.Random

2.1 使用Random可以生成随机数

Random rand = new Random();

int s = rand.nextInt(1000);

其中,nextInt(1000)表示生成一个0~1000的随机数

生成3个0~1000的随机数。

Random rand = new Random();

for(int i=0; i< 3; i++)

{

int s = rand.nextInt(1000);

System.out.println("生成随机数: " + s);

}

可以发现,每次生成的数是没有规律的(随机的)。

2.2 Random类:编程尝试

**题目描述:**某公司举办年会,共有96名员工参加。现在需要编写一个Java程序模拟抽取特等奖的过程。特等奖只有1名,需要从所有参加年会的员工中随机抽取。

实现提示:
• 使用 java.util.Random 类来生成随机数。
• 假定员工编号从 1 到 96 ,使用随机数来代表被抽中的员工编号。
• 特等奖的中奖编号需要是 1 到 96 之间的随机数。

3.Math类

3.1 常用方法

在 Java 语言里,Math 类提供了一系列进行基本数学运算的静态方法,包括指数、对数、平方根以及三角函数等。这个类位于java.lang包下,因此在使用时不需要导入任何外部包。
abs :返回参数的绝对值。
ceil :返回大于或等于参数的最小double值,等于一个整数。
floor :返回小于或等于参数的最大double值,等于一个整数。
round :最接近参数的 longint
min :返回两个参数中的较小值。
max :返回两个参数中的较大值。
pow :返回第一个参数的第二个参数次幂的值。
sqrt :返回参数的平方根。
exp :返回欧拉数 e 的参数次幂的值。
sin cos tan :分别返回参数的正弦、余弦、正切值。

3.2 代码示例

java 复制代码
public class MathDemo {
    public static void main(String[] args) {
        // 计算两个数的最大值
        System.out.println("Max of 5 and 10: " + Math.max(5, 10));
        // 计算平方根
        System.out.println("Square root of 16: " + Math.sqrt(16));
        // 计算一个数的次方
        System.out.println("2 to the power of 3: " + Math.pow(2, 3));
           
        // 生成一个随机数
        System.out.println("A random number: " + Math.random());
    }
}

3.3 Math类------动手尝试

**题目描述:**编写一个Java程序,要求用户输入一个圆的半径,然后计算并打印出这个圆的周长和面积。

输入说明

用户输入一个非负实数,表示圆的半径。

输出说明

首行输出圆的周长,保留两位小数。

第二行输出圆的面积,同样保留两位小数。

实现提示

使用Scanner类从控制台读取用户输入。

使用Math.PI获取圆周率π的值。

计算圆的周长公式为:2 * π * r,其中r是圆的半径。

计算圆的面积公式为:π * r^2。

使用String.format()或System.out.printf()来保留两位小数。

4 字符

4.1 字符Character

字符 Character ,代表一个文字或符号

在 Java 语言里,用char类型表示字符

例如,

char c1 = 'A';

char c2 = '9';

char c3 = '邵';

... 中文、日文、韩文、希腊文、... 人类的所有文字和符号

字符变量的写法:

(1) 只能表示一个字符

(2) 用英文单引号括号来

4.2 字符编码

每个字符都对应一个数字,称为字符编码例如,

char c = 'A';

int n = c;

System.out.println("编码为: " + n);

常见的有: 'A'为65 , 'B'为66 ... 'a'为97, 'b'为98...

'0' 为48, '1' 为49 ... ' '为32(空格) ..

地球上所有的文字和符号都有一个编码(Unicode码)

例如,

char c = '邵';

int n = c;

System.out.println("编码为: " + n);

其中,把 0-128 之间的称为 ASCII码 ( 仅英文、数字、英文标点符号等) , 对应键盘上的按键。

思考:

int n = 'C' - 'A'; // 值为多少?

int k = '2' - '0'; // 值为多少?

4.3 字符与字符串

字符串,就是一串字符

  • 转换 String => char

String str = "afanihao阿发你好";

char ch = str.charAt(8); // 下标从0开始计数

char[] chs = str.toCharArray();

  • 转换 char => String

char[] chs = {'阿', '发', '你', '好'};

String str = new String(chs, 1,3);

str += '的';

在字符串字符中查找字符

例如,

String str = "afanihao阿发你好";

int p = str.indexOf('发');

System.out.println("位置: " + p);

相关推荐
一点媛艺15 分钟前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风19 分钟前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生1 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2341 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程2 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk3 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*3 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue3 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang