Java中的常用类详解(Math、Scanner、Random、String)

news2024/11/17 8:56:18

目录

一、Math(数学类)

自带常量

取整方法

三角函数方法

指数函数方法

其他方法

二、Scanner(实用程序类)

三、Random(随机数类)

四、String(字符串类)

获取相关

判断相关

修改相关


一、Math(数学类)

math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

自带常量

  • static double E :比任何其他值都更接近 e(即自然对数的底数)的 double 值。

  • static double PI : 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

取整方法

  • static double ceil(double a) :返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

  • static double floor(double a) :返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

  • static double rint(double a) :返回最接近参数并等于某一整数的 double 值。

  • static long round(double a) :返回最接近参数的 long

三角函数方法

  • static double sin(double a) :返回角的三角正弦。

  • static double cos(double a) :返回角的三角余弦。

  • static double tan(double a) :返回角的三角正切。

  • static double toDegrees(double angrad) :将用弧度表示的角转换为近似相等的用角度表示的角。

  • static double toRadians(double angdeg) :将用角度表示的角转换为近似相等的用弧度表示的角。

  • static double asin(double a) :返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。

  • static double acos(double a) :返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。

  • static double atan(double a) :返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。

指数函数方法

  • static double exp(double a) :返回欧拉数 edouble 次幂的值。

  • static double log(double a) :返回 double 值的自然对数(底数是 e)。

  • static double log10(double a) :返回 double 值的底数为 10 的对数。

  • static double pow(double a, double b) :返回第一个参数的第二个参数次幂的值。

  • static double sqrt(double a) :返回正确舍入的 double 值的正平方根。

  • static double cbrt(double a) :返回 double 值的立方根。

其他方法

  • static double abs(double a) :返回 double 值的绝对值。

  • static double hypot(double x, double y) :返回 sqrt(x2 +y2),没有中间溢出或下溢。

  • static double max(double a, double b) :返回两个 double 值中较大的一个。

  • static double min(double a, double b) :返回两个 double 值中较小的一个。

  • static double random() :返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

exam1:获取指定数据的最大值和最小值

public class MathDemo01 {
    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        int max = Math.max(a, b);
        System.out.println("max = " + max);

        int min = Math.min(a, b);
        System.out.println("min = " + min);
    }
}

exam2:产生随机数

public class MathDemo02 {
    public static void main(String[] args) {
        double random = Math.random();
        System.out.println(random);
    }
}

得到的是0·1之间的小数,不会超过1。

exam3:对小数进行操作


/**
 * static double ceil(double a)  :返回最小的(最接近负无穷大)`double` 值,该值大于等于参数,并等于某个整数。
 * static double floor(double a)  :返回最大的(最接近正无穷大)`double` 值,该值小于等于参数,并等于某个整数。
 * static long round(double a)  :返回最接近参数的 `long`。
 */
public class MathDemo03 {
    public static void main(String[] args) {
        double d1 = 3.189;
        double d2 = 3.897;
        double d3 = -3.189;
        double d4 = -3.897;
        // ceil 方法是得到比给定值大的最小的整数
        double c1 = Math.ceil(d1); // 4.0
        double c2 = Math.ceil(d2); // 4.0
        double c3 = Math.ceil(d3); // -3
        double c4 = Math.ceil(d4); // -3

        System.out.println(c1 + "\t" + c2 + "\t" + c3 + "\t" + c4);

        // floor 得到给值小的最大的整数
        double f1 = Math.floor(d1); // 3
        double f2 = Math.floor(d2); // 3
        double f3 = Math.floor(d3); // -4
        double f4 = Math.floor(d4); // -4
        System.out.println(f1 + "\t" + f2 + "\t" + f3 + "\t" + f4);


        long r1 = Math.round(d1); // 3
        long r2 = Math.round(d2); // 4
        long r3 = Math.round(d3); // -3
        long r4 = Math.round(d4); // -4
        System.out.println(r1 + "\t" + r2 + "\t" + r3 + "\t" + r4);
    }
}

二、Scanner(实用程序类)

一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

package com;

import java.util.Scanner;

/**
 * @description: TODO
 * @company: 倩女幽魂
 * @author: Jock
 * @date: 2024-03-24
 * @version: 1.0
 */
public class ScannerDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 获取输入的一行数据
        //String line = sc.nextLine();
        //System.out.println("line = " + line);

        //int num = sc.nextInt();
        //System.out.println("num = " + num);

        while (sc.hasNext()) {
            String next = sc.next();
            System.out.println("next = " + next);
            if (next.equals("abc")) break;
        }

    }
}

三、Random(随机数类)

这个类是用于产生一个随机数的。

public class RandomDemo01 {
    public static void main(String[] args) {
        Random random = new Random();

        int i = random.nextInt(100);
        System.out.println("i = " + i);

        double v = random.nextDouble();
        System.out.println("v = " + v);
    }
}

四、String(字符串类)

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改,因为 String 对象是不可变的,所以可以共享。

获取相关

  • char charAt(int index) :返回指定索引处的 char 值。

  • int indexOf(int ch) :返回指定字符在此字符串中第一次出现处的索引。

  • int indexOf(int ch, int fromIndex) :返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。

  • int indexOf(String str) :返回指定子字符串在此字符串中第一次出现处的索引。

  • int indexOf(String str, int fromIndex) :返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

  • int lastIndexOf(int ch) :返回指定字符在此字符串中最后一次出现处的索引。

  • int length() :返回此字符串的长度。

  • String[] split(String regex) : 根据给定正则表达式的匹配拆分此字符串。

  • String substring(int beginIndex) :返回一个新的字符串,它是此字符串的一个子字符串。

  • String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串的一个子字符串。


/**
 * - char charAt(int index)  :返回指定索引处的 `char` 值。
 * - int indexOf(int ch)  :返回指定字符在此字符串中第一次出现处的索引。
 * - int indexOf(int ch, int fromIndex)  :返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
 * - int indexOf(String str)  :返回指定子字符串在此字符串中第一次出现处的索引。
 * - int indexOf(String str, int fromIndex)  :返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
 * - int lastIndexOf(int ch)  :返回指定字符在此字符串中最后一次出现处的索引。
 * - int length()  :返回此字符串的长度。
 * - String[] split(String regex)  : 根据给定正则表达式的匹配拆分此字符串。
 * - String substring(int beginIndex)  :返回一个新的字符串,它是此字符串的一个子字符串。
 * - String substring(int beginIndex, int endIndex)  :返回一个新字符串,它是此字符串的一个子字符串。
 */
public class StringDemo01 {
    public static void main(String[] args) {
        String str = "hello world";

        // char charAt(int index),它是从 0 开始,也就是第一个字符的下标是0
        char c = str.charAt(4);
        System.out.println("c = " + c);

        // int indexOf(int ch):如果能找到就返回对应的下标,否则返回 -1
        int index = str.indexOf("W");
        System.out.println("index = " + index);

        //int indexOf(String str, int fromIndex)
        int index1 = str.indexOf("o", 6);
        System.out.println("index1 = " + index1);

        // int lastIndexOf(int ch) 从后往前找
        int index2 = str.lastIndexOf('o');
        System.out.println("index2 = " + index2);

        // int length():获取字符串长度
        int length = str.length();
        System.out.println("length = " + length);

        // String[] split(String regex)
        String[] s = str.split(" ");
        for (int i = 0; i < s.length; i++) {
            System.out.println(s[i]);
        }

        // String substring(int beginIndex, int endIndex)截取字符串
        String substring = str.substring(3, 9);
        System.out.println("substring = " + substring);
    }
}

判断相关

  • int compareTo(String anotherString) :按字典顺序比较两个字符串。

  • int compareToIgnoreCase(String str) :按字典顺序比较两个字符串,不考虑大小写。

  • boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true。

  • boolean endsWith(String suffix) :测试此字符串是否以指定的后缀结束。

  • boolean equals(Object anObject) :将此字符串与指定的对象比较。

  • boolean equalsIgnoreCase(String anotherString) :将此 String 与另一个 String 比较,不考虑大小写。

  • boolean isEmpty() :当且仅当 length()0 时返回 true

  • boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开始。

  • boolean startsWith(String prefix, int toffset) :测试此字符串从指定索引开始的子字符串是否以指定前缀开始。


public class StringDemo02 {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "Hello";
        String s3 = "hello";
        String s4 = new String("hello");

        System.out.println((int)'h');
        System.out.println((int)'H');

        //- int compareTo(String anotherString)  :按字典顺序比较两个字符串。它会返回正数、零、负数
        int i = s1.compareTo(s2);
        System.out.println("i = " + i);

        //- int compareToIgnoreCase(String str)  :按字典顺序比较两个字符串,不考虑大小写。
        int i1 = s1.compareToIgnoreCase(s2);
        System.out.println("i1 = " + i1);

        //- boolean contains(CharSequence s)  :当且仅当此字符串包含指定的 char 值序列时,返回 true。
        boolean llo = s1.contains("lloo");
        System.out.println("llo = " + llo);

        //- boolean endsWith(String suffix)  :测试此字符串是否以指定的后缀结束。
        boolean lo = s1.endsWith("Lo");
        System.out.println("lo = " + lo);

        //- boolean equals(Object anObject)  :将此字符串与指定的对象比较。
        boolean equals3 = s1.equals(s2);
        boolean equals = equals3;
        System.out.println("equals = " + equals);
        boolean equals1 = s1.equals(s3);
        System.out.println("equals1 = " + equals1);
        boolean equals2 = s3.equals(s4);
        System.out.println("equals2 = " + equals2);

        boolean flag = s1 == s3;
        System.out.println("flag = " + flag);

        flag = s1 == s4;
        System.out.println("flag = " + flag);

        // == 在 java 中比较对象的引用地址,而 equals 是比较对象的值


        //- boolean equalsIgnoreCase(String anotherString)  :将此 `String` 与另一个 `String` 比较,不考虑大小写。
        flag = s1.equalsIgnoreCase(s3);
        System.out.println("flag = " + flag);

        //- boolean isEmpty()  :当且仅当 [`length()`](../../java/lang/String.html#length()) 为  `0` 时返回 `true`。
        System.out.println("s1.isEmpty() = " + s1.isEmpty());

        //- boolean startsWith(String prefix)  :测试此字符串是否以指定的前缀开始。
        boolean h = s1.startsWith("H");
        System.out.println("h = " + h);

        //- boolean startsWith(String prefix, int toffset)  :测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
    }
}

修改相关

  • String replace(char oldChar, char newChar) :返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

  • String replace(CharSequence target, CharSequence replacement) :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。

  • String toLowerCase() :使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

  • String toUpperCase() :使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

  • String trim() :返回字符串的副本,忽略前导空白和尾部空白。


/**
 * - String replace(char oldChar, char newChar)  :返回一个新的字符串,它是通过用 `newChar` 替换此字符串中出现的所有 `oldChar` 得到的。
 * - String replace(CharSequence target, CharSequence replacement)  :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
 * - String toLowerCase() :使用默认语言环境的规则将此 `String` 中的所有字符都转换为小写。
 * - String toUpperCase()  :使用默认语言环境的规则将此 `String` 中的所有字符都转换为大写。
 * - String trim() :返回字符串的副本,忽略前导空白和尾部空白。
 */
public class StringDemo03 {
    public static void main(String[] args) {
        String str = " good AFTERNOON  ";

        //- String replace(char oldChar, char newChar)  :返回一个新的字符串,它是通过用 `newChar` 替换此字符串中出现的所有 `oldChar` 得到的。
        //- String replace(CharSequence target, CharSequence replacement)  :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
        String replace = str.replace("good", "Good");
        System.out.println("str = " + str);
        System.out.println("replace = " + replace);

        //- String toLowerCase() :使用默认语言环境的规则将此 `String` 中的所有字符都转换为小写。
        String lowerCase = str.toLowerCase();
        System.out.println("lowerCase = " + lowerCase);

        //- String toUpperCase()  :使用默认语言环境的规则将此 `String` 中的所有字符都转换为大写。
        String upperCase = str.toUpperCase();
        System.out.println("upperCase = " + upperCase);

        //- String trim() :返回字符串的副本,忽略前导空白和尾部空白。
        String trim = str.trim();
        System.out.println("trim = " + trim);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实践笔记-03 docker buildx 使用

docker buildx 使用 1.启用docker buildx2.启用 binfmt_misc3.从默认的构建器切换到多平台构建器3.1创建buildkitd.toml文件&#xff08;私有仓库是http没有证书的情况下&#xff0c;需要配置&#xff09;3.2创建构建器并使用新创建的构建器 4.构建多架构镜像并推送至harbor仓库…

清风DJ,DJ舞曲听不停

hi&#xff0c;大家好我是技术苟&#xff0c;每周准时上线为你带来实用黑科技&#xff01;由于公众号改版&#xff0c;现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴&#xff0c;可以将黑科技百科公众号设为标星&#xf…

如何选择适合智能型程控直流电子负载

在选择适合智能型程控直流电子负载时&#xff0c;需要考虑以下几个方面&#xff1a; 根据实际需求选择合适的负载容量&#xff0c;负载容量是指电子负载能够承受的最大电流和电压。一般来说&#xff0c;负载容量越大&#xff0c;价格越高。因此&#xff0c;在满足实际需求的前提…

Qt实现Kermit协议(四)

3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下&#xff1a; 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…

【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图&#xff0c;文末附完整代码 小提琴图是一种常用的数据可视化工具…

YUM仓库和编译安装

目录 一.YUM仓库搭建 1.简介&#xff1a; 2.搭建思路&#xff1a; 3.实验&#xff1a;单机yum的创建 二.编译安装 1.简介 2.安装过程 3.实验&#xff1a;编译安装nginx 一.YUM仓库搭建 1.简介&#xff1a; yum是一个基于RPM包&#xff08;是Red-Hat Package Manager红…

深度学习500问——Chapter06: 循环神经网络(RNN)(3)

文章目录 6.11 LSTM 6.11.1 LSTM的产生原因 6.11.2 图解标准RNN和LSTM的区别 6.11.3 LSTM核心思想图解 6.11.4 LSTM流行的变体 6.12 LSTMs与GRUs的区别 6.13 RNNs在NLP中的典型应用 6.11 LSTM 6.11.1 LSTM的产生原因 RNN在处理长期依赖&#xff08;时间序列上距离较远的…

DC电源模块在电子设备中的应用场景

BOSHIDA DC电源模块在电子设备中的应用场景 DC电源模块在电子设备中广泛应用于以下场景&#xff1a; 1. 电子产品&#xff1a;如手机、平板电脑、笔记本电脑等便携式设备&#xff0c;这些设备通常需要稳定的直流电源来供电。 2. 工业设备&#xff1a;包括自动化设备、工业机器…

【绘图案例-绘制图片 Objective-C语言】

一、绘制图片 1.接下来,我们来说这个绘制图片啊,把之前的copy代码复制粘贴一份儿,名字改成“05-绘制图片”, 1)首先:绘制图片,你要有图片,思路都是一样的,你绘制啥,首先要有啥, 素材里边,我们来说一下啊,这个里边儿,主要来说一下,小图、和、大图、的区别, 然后…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(四)

本篇内容对应 “2.5 开发登录、退出功能” 小节 “4.7 优化登陆模块” 小节 2.6 显示登录信息 2.7 账号设置 2.8 检查登录状态 登录功能的流程是什么&#xff1f; UUID为什么不会重复&#xff1f; 因为UUID是基于mac物理地址、时间戳、随机数等信息生成。因此UUID居于极高的唯…

太阳能光伏电子实验酸洗用PFA方槽耐受强酸碱耐高温

PFA清洗槽是四氟清洗桶后的升级款&#xff0c;主要用于半导体光伏光电等行业&#xff0c;一体成型&#xff0c;无需担心漏液&#xff0c;表面光滑无毛刺。 别名PFA浸泡桶、PFA酸缸、PFA方槽等&#xff0c;可定制尺寸&#xff0c;可配套盖子&#xff0c;盖子有PFA/PTFE两种材质…

智过网:一建继续教育,操作指南与周期解析

随着社会的快速发展和技术的不断更新&#xff0c;建筑行业对从业人员的专业素质要求也在逐步提高。为了确保一级建造师的专业技能能够与时俱进&#xff0c;满足行业发展的需求&#xff0c;继续教育成为了必不可少的环节。本文将详细解析一建继续教育的操作流程及其周期安排&…

Hugging Face入门(一)

简介 本文主要内容&#xff1a; Hugging Face介绍环境搭建敲两个例子 Hugging Face介绍 Hugging Face 是一家法美合资公司&#xff0c;总部位于纽约市&#xff0c;成立于2016年。它由法国企业家Clment Delangue、Julien Chaumond和Thomas Wolf在纽约市创立&#xff0c;最初是…

让智能体像孩子一样观察别人学习动作,跨视角技能学习数据集EgoExoLearn来了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 在探索人工智能边界时&#xff0c;我们时常惊叹于人类孩童的学习能力 —— 可以轻易地将他人…

基于SpringBoot的高校自习室预约系统

基于SpringBoot的高校自习室预约系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统功能分析 本次的功能设计主要围绕着学生和管理员两个角色&#xff0c;对于学生的用…

AI预测福彩3D第29弹【2024年4月7日预测--第7套算法重新开始计算第2次测试】

今天咱们继续进行进行第7套算法的测试&#xff0c;今天是第2次测试&#xff0c;昨天已经成功命中&#xff0c;其中7码大方案全部命中&#xff0c;四码小方案也命中。再接再厉&#xff0c;继续验证&#xff0c;废话不多说&#xff0c;直接上图上结果~ 2024年4月7日3D的七码预测结…

集合容器面试题

Java 容器都有哪些&#xff1f; Java 容器分为 Collection 和 Map 两大类 Collection 和 Collections 有什么区别&#xff1f; Collection 是一个集合接口&#xff0c;它提供了对集合对象进行基本操作的通用接口方法&#xff0c;所有集合都是它的子类&#xff0c;比如 List、…

电商卖家如何从1688批量采集商品信息并铺货到自己店铺?

目前&#xff0c;各大电商平台严查无货源&#xff0c;不管是已经开店还是准备开店的卖家&#xff0c;想要店铺长久发展&#xff0c;都需要从1688找授权分销的厂家拿货源铺货。 然而很多新手卖家在1688找货源时&#xff0c;不知道如何找到物美价廉的源头厂货&#xff0c;选好货…

SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)

文章目录 pomyml生产者消费者 Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符&#xff01; Routingkey 一般都是有一个或多个单词组成&#xff0c;多个单词…

关于Linux下的进程创建与终止(进程篇 - 涉及写时拷贝,fork函数)

目录 创建进程 写时拷贝 fork函数 进程终止 进程终止时&#xff0c;操作系统都做了什么&#xff1f; 进程终止的常见方式有哪些&#xff1f; 如何使用代码终止掉一个进程&#xff1f; 创建进程 写时拷贝 在了解下面的内容之前&#xff0c;我们需要先聊一聊写时拷贝这一…