常用API(StringJoiner类 & Math类 & System类)

StringJoiner类

接下来,我们学习一个类叫做StringJoiner,学习这个类干嘛用呢?是因为我们前面使用StringBuilder拼接字符串的时,代码写起来还是有一点麻烦,而StringJoiner号称是拼接神器,不仅效率高,而且代码简洁。

下面演示一下StringJoiner的基本使用

public class StringJoinerTest {

public static void main(String\[\] args) {

StringJoiner s = new StringJoiner(",");

s.add("java1");

s.add("java2");

s.add("java3");

System.out.println(s); //结果为: java1,java2,java3

System.out.println("-----------------------------");

System.out.println(s.length());

System.out.println("-----------------------------");

/**

* 三个参数:

* 参数1:间隔符

* 参数2:开头

* 参数3:结尾

*/

StringJoiner s1 = new StringJoiner(",","","");

s1.add("java1");

s1.add("java2");

s1.add("java3");

System.out.println(s1); //结果为: java1,java2,java3

}

}

使用StirngJoiner改写前面把数组转换为字符串的案例

public class StringJoinerDemo {

public static void main(String\[\] args) {

/**

* 案例:设计一个方法,用于返回任意整型数组的内容,要求返回的数组内容

* 格式如: 11, 22, 33

*/

String str = getArrayData( new int\[\]{11,22,33});

System.out.println(str);

}

//方法作用:将int数组转换为指定格式的字符串

public static String getArrayData(int\[\] arr){

// 1.判断数组是否为null

if(arr == null){

return null;

}

// 2.如果数组不为null,再遍历,并拼接数组中的元素

StringJoiner sj = new StringJoiner(", ", "", "");

for (int i = 0; i < arr.length; i++) {

// 加""是因为add方法的参数要的是String类型

sj.add(String.valueOf(arri));

}

// 3.把StirngBuilder转换为String,并返回。

return sj.toString();

}

}

Math类

Math是数学的意思,该类提供了很多个进行数学运算的方法,如求绝对值,求最大值,四舍五入等。

Math类提供的常见方法:

话不多说,直接上代码。

public class MathTest {

public static void main(String\[\] args) {

// 目标:了解下Math类提供的常见方法。

// 1、public static int abs(int a):取绝对值(拿到的结果一定是正数)

// public static double abs(double a)

System.out.println(Math.abs(-12)); // 12

System.out.println(Math.abs(123)); // 123

System.out.println(Math.abs(-3.14)); // 3.14

// 2、public static double ceil(double a): 向上取整

System.out.println(Math.ceil(4.0000001)); // 5.0

System.out.println(Math.ceil(4.0)); // 4.0

// 3、public static double floor(double a): 向下取整

System.out.println(Math.floor(4.999999)); // 4.0

System.out.println(Math.floor(4.0)); // 4.0

// 4、public static long round(double a):四舍五入

System.out.println(Math.round(3.4999)); // 3

System.out.println(Math.round(3.50001)); // 4

// 5、public static int max(int a, int b):取较大值

// public static int min(int a, int b):取较小值

System.out.println(Math.max(10, 20)); // 20

System.out.println(Math.min(10, 20)); // 10

// 6、 public static double pow(double a, double b):取次方

System.out.println(Math.pow(2, 3)); // 2的3次方 8.0

System.out.println(Math.pow(3, 2)); // 3的2次方 9.0

// 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)

System.out.println(Math.random());

}

}

System类

接下来,学习一个System类,这是系统类,提供了一些获取系统数据的方法。比如获取系统时间。

System类提供的常见方法:

/**

* 目标:了解下System类的常见方法。

*/

public class SystemTest {

public static void main(String\[\] args) {

// 1、public static void exit(int status):

// 终止当前运行的Java 虚拟机。

// 该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。

System.exit(0); // 人为的终止虚拟机 。(不要使用)

// 2、public static long currentTimeMillis():

// 获取当前系统的时间

// 返回的是long类型的时间毫秒值:指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值,1s = 1000ms

long time = System.currentTimeMillis();

System.out.println(time);

for (int i = 0; i < 1000000; i++) {

System.out.println("输出了:" + i);

}

long time2 = System.currentTimeMillis();

System.out.println((time2 - time) / 1000.0 + "s");

}

}

时间毫秒值: 指的是从1970年1月1日 00:00:00走到此刻的总的毫秒数,应该是很大的。 1s = 1000ms。

为啥选择"1970年1月1日 00:00:00" 作为时间的起点?

1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。1970年1月1日 算C语言的生日


版权声明:本文为CSDN博主「iiiiyu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/iiiiiiiiiiyuyuyu/article/details/160224827

相关推荐
何以解忧,唯有..5 分钟前
高并发下超卖问题解决方案:从数据库到分布式锁的完整实践
java
Brilliantwxx14 分钟前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
行者全栈架构师18 分钟前
Spring Boot 接入 MaxKey 单点登录:6 个内部系统,一次登录全通行
java·vue.js·后端
清水白石00820 分钟前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
kolyle26 分钟前
万级 QPS 下的 Token 分发系统架构:从 0 到 1 跑通 AI 时代的“水电煤“
开发语言·人工智能·系统架构·token·qps·极智词元·大模型私有化部署
柯南466826 分钟前
【AI开发之Rust】第 8 课:泛型、trait 与 trait 对象
rust·编程语言
木白CPP35 分钟前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
caoerzhong39 分钟前
JeeWMS 开源仓库管理系统 GPL-3.0 合规指南:Java WMS 二次开发前必须弄清的授权边界
java·开发语言·开源·vue
Patrick在香港39 分钟前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
IT毕设梦工厂40 分钟前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目