一、Math类

  Math类常用的方法:

public static long abs (double a)   返回a的绝对值
public static double max (double a,double b) 返回a、b的最大值
public static double min (double a,double b) 返回a、b的最小值
public static double pow (double a,double b) 返回a的b次幂
public static double sqrt (double a) 返回a的平方根
public static double log (double a) 返回a的对数
public static double sin (double a) 返回a的正弦值
public static double asin (double a) 返回a的反正弦值
public static double random() 产生一个0到1之间的随机数,这个随机数不包括0和1

  二、Random类

  1.两种构造方法

public Random() // 不含参数的构造方法以当前时间作为种子,不同时间运行的结果不同
pbulic Random(long seed) // 而含参的构造方法以种子为基础计算随机数,不同时间以相同顺序执行结果一样,两个具有相同种子的Random对象按相同顺序执行结果也一样。

  2.使用方法

package integer.jun.iplab;

import java.util.Random;

public class RandomTest {

    public static void main(String[] args) {

        System.out.println(Math.random());  // 返回一个0(不包括)到1(不包括)之间的随机数

        Random rd = new Random();
System.out.println(rd.nextInt()); // 返回32位表示的数的补码形式
System.out.println(rd.nextInt(32)); // 返回0(包括)到32(不包括)的随机数 Random rd_1 = new Random(100);
System.out.print(rd_1.nextInt() + " ");
System.out.print(rd_1.nextDouble() + " ");
System.out.print(rd_1.nextFloat() + " ");
System.out.print(rd_1.nextBoolean() + " "); System.out.println(); Random rd_2 = new Random(100);
System.out.print(rd_2.nextInt() + " ");
System.out.print(rd_2.nextDouble() + " ");
System.out.print(rd_2.nextFloat() + " ");
System.out.print(rd_2.nextBoolean() + " "); }
} 输出:
0.557101449009472
1622116987
18
-1193959466 0.7346627443280227 0.7158033 true
-1193959466 0.7346627443280227 0.7158033 true

  二、数字格式化

  数字格式化是指按照指定格式得到一个字符串。

  1.Formatter类

  (1)格式化模式是format方法中的一个使用双括号括起来的字符序列,该字符序列由格式和普通字符构成。

  (2)值列表是使用逗号分隔的变量、常量或表达式。但是,要保证format方法“格式化模式”中格式符的个数与“值列表”中列出的值的个数相同。

String m = String.format("%d元%.1f箱%d斤", 78, 8.0, 125);
System.out.println(m); // 打印: 78元8.0箱125斤

  

  2.格式化整数

  (1)格式符

%d,%o,%x和X格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型数据。
%d将值格式化为十进制整数。
%o将值格式化为八进制整数。
%x将值格式化为小写的十六进制整数。
%X将值格式化为大写的十六进制整数。

  (2)修饰符

        String m1 = String.format("按千分组: %,d; 按千分组带正号: %+,d", 123456, 654321);
System.out.println(m1); // 按千分组: 123,456; 按千分组带正号: +654,321

  (3)数据的宽度

  数据的宽度就是返回字符串的长度,“%md”表示在数字的左面加空格;“%-md”表示在数字的右面加空格

        String m2 = String.format("%6d", 777);
System.out.println(m2); // 打印: 空格空格空格777
System.out.println(m2.length()); // 打印: 6

  3.格式化浮点数

  (1)格式符

%f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double。

  (2)修饰符

String m4 = String.format("整数部分按千分组: %,f; 整数部分按千分组带正号: %+,f", 123456789.123456, 123456789.123456);
System.out.println(m4); // 整数部分按千分组: 123,456,789.123456; 整数部分按千分组带正号: +123,456,789.123456

  (3)限制小数位数的“宽度”

  "%.nf"表示保留n位小数,“%mf”表示在数字的左边加上空格凑成长度为m的字符串,“%-mf”表示在数字的右边加上空格凑成长度为m的字符串。

Java基础(三十五)Math、Random类和数字格式化(String.format方法)的更多相关文章

  1. “全栈2019”Java第三十五章:面向对象

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. Java进阶(三十五)java int与integer的区别

    Java进阶(三十五)java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象 ...

  3. “全栈2019”Java第三十六章:类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. Java基础之十五 泛型

    第十五章 泛型 一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大. 在面对对象编程语言中,多态算是一种泛化机 ...

  5. Java基础知识强化82:Random类概述和方法使用

    1. Random类 public class Random extends Object implements Serializable: 此类的实例用于生成伪随机数流.此类使用48位种子. (1) ...

  6. Java基础(十五):Java 中的内部类

    问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多 ...

  7. 对象数组、集合、链表(java基础知识十五)

    1.对象数组的概述和使用 * 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Student[5]; //存储学生 ...

  8. java基础第十五篇之IO流和递归算法

    FileInputStream : 输入流 int available() : 一次读取所有的字节数 read() : 将文件上的字节读取到内存的数组中 FileOutputStream : 输出流 ...

  9. 夯实Java基础(二十五)——JDBC使用详解

    1.JDBC介绍 JDBC的全称是Java Data Base Connectivity(Java数据库连接).是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问(例如MyS ...

随机推荐

  1. Python网络爬虫实战(五)批量下载B站收藏夹视频

    我们除了爬取文本信息,有的时候还需要爬媒体信息,比如视频图片音乐等.就拿B站来说,我的收藏夹内的视频可能随时会失效,所以把它们下载到本地是非常保险的一件事. 对于这种大量列表型的数据,可以猜测B站收藏 ...

  2. Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf

    虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...

  3. 异步Promise及Async/Await最完整入门攻略

    一.为什么有Async/Await? 我们都知道已经有了Promise的解决方案了,为什么还要ES7提出新的Async/Await标准呢? 答案其实也显而易见:Promise虽然跳出了异步嵌套的怪圈, ...

  4. 玩转 SpringBoot 2 快速整合拦截器

    概述 首先声明一下,这里所说的拦截器是 SpringMVC 的拦截器 HandlerInterceptor.使用SpringMVC 拦截器需要做如下操作: 创建拦截器类需要实现 HandlerInte ...

  5. python安装及pyCharm使用

    1.官网下载Python https://www.python.org/downloads/

  6. Shell之文本排序命令

    目录 Shell之文本排序命令 参考 wc命令 sort命令 uniq命令 Shell之文本排序命令

  7. 数据库系统概论——SQL

    [toc] 一.SQL查询语言概览 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 基本表 本身独立存在的表 SQL中一个 ...

  8. Spring 中使用 @Scheduled 创建定时任务

    一.定时任务触发条件 1.在 Application 启动类上添加:@EnableScheduling 2.含定时方法的类上添加注解:@Component,该注解将定时任务类纳入 spring bea ...

  9. ELK 学习笔记之 elasticsearch bool组合查询

    elasticsearch bool组合查询: 相当于sql:where _type = 'books' and (price = 500 or title = 'bigdata') Note: mu ...

  10. vue- Vue-Cli脚手架工具安装 -创建项目-页面开发流程-组件生命周期- -03

    目录 Vue-Cli 项目环境搭建 与 python 基础环境对比 环境搭建 创建启动 vue 项目 命令创建项目(步骤小多) 启动 vue 项目(命令行方式) 启动 vue 项目(pycharm 方 ...