首页 > 编程语言 >Java中的常见类(API)---java基础的五弹

Java中的常见类(API)---java基础的五弹

时间:2024-07-29 19:57:11浏览次数:12  
标签:BigInteger Java String 五弹 System --- 字符串 println out

文章目录


Java基础知识全解第五弹

记录回顾自己学过的java常见的基础知识,希望可以给初学者一些帮助,如果合适的话希望各位给一个免费的点赞和关注,在此谢谢各位了。

常用类

一、 String类

1. 判断功能的方法
  • public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
  • public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
2. 获取功能的方法
  • public int length () :返回此字符串的长度。 跟数组的length属性要分区开
  • public String concat (String str) :将指定的字符串连接到该字符串的末尾。
  • public char charAt (int index) :返回指定索引处的 char值。
  • public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
  • public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符 串结尾。
  • public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含endIndex
3. 转换功能的方法
  • public char[] toCharArray () :将此字符串转换为新的字符数组。
  • public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
  • public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
4. 分割功能的方法
String str = "a春眠不觉晓,处处蚊子咬,也来吧掌声,不知死多少  ";
System.out.println("长度:"+str.length());
System.out.println("查找:"+str.indexOf('a'));
System.out.println("查找:"+str.indexOf(97));
System.out.println("查找:"+str.lastIndexOf("处"));
System.out.println(""+str.lastIndexOf(100));
System.out.println("去除空格:"+str.trim());
System.out.println("取子串:"+str.substring(3));
System.out.println("取子串:"+str.substring(3,7));
System.out.println("替换:"+str.replace("处处","**"));
System.out.println("找某个字符:"+str.charAt(10));
System.out.println("变为小写:"+"Abc".toLowerCase());
System.out.println("变为大写:"+"Abc".toUpperCase());
System.out.println("判断以xxx结尾:"+str.endsWith("fsdfd"));
System.out.println("判断以xxx结尾:"+str.startsWith("a"));
System.out.println("将基本类型变为字符串:"+String.valueOf(1));
System.out.println("===将字符串变为字符数组====");
char[] chars = str.toCharArray();
Stream<char[]> stream = Stream.of(chars);
System.out.println(chars.length);

//正则表达式:做更精准的校验
//构建一个Pattern对象
Pattern pattern = Pattern.compile(".*d.*");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.matches());

String str = "中";
System.out.println(str.getBytes("ISO8859-1").length);// -128~127
System.out.println(str.getBytes("GBK").length);
System.out.println(str.getBytes("UTF-8").length);
System.out.println(new String(str.getBytes("ISO8859-1"),
"ISO8859-1"));// 乱码,表示不了中文
System.out.println(new String(str.getBytes("GBK"), "GBK"));
System.out.println(new String(str.getBytes("UTF-8"), "UTF-8"));
5. 其他常用方法
String concat(String str):字符串的拼接,习惯使用+
boolean contains(CharSequence s)  :判断是否包含某个字符或子串
boolean endsWith(String suffix)  :测试此字符串是否以指定的后缀结尾。比如验证文件后缀是否符合要求
boolean startsWith(String prefix)  :测试此字符串是否以指定的前缀开头
boolean isEmpty()  :判断长度是否为0
toLowerCase() /toUpperCase():将所有在此字符 String使用默认语言环境的规则,以小写/大写
static String valueOf(任意类型):将任意类型变为字符串,比如会用到的将 基本类型变为字符串  

二、 StringBuilder

1. 字符串拼接
  1. 由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象
  2. 在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。
public class StringDemo {
    public static void main(String[] args) {
        String s = "Hello";
        s += "World";
        System.out.println(s);
    }
}
2. StringBuffer

定义:可变的字符序列

常用方法;

append(字符串)-----追加一个子字符串。

insert()-------插入

delete()------删除

reverse()-----逆序

实例:

StringBuffer sb = new StringBuffer("hello");
sb.append("张三").append(",").append("Ikun");//方法返回一个对象,可以一直继续向后面添加字符串。(在字符串末尾添加字符串)
System.out.println(sb);
sb.insert(5,"英雄们");//向自己指定开始索引到结束索引过程的位置添加字符。
System.out.println(sb);
sb.delete(5,8);//将自己指定开始索引到结束索引过程位置的字符删除
System.out.println(sb);
sb.reverse();//将字符串反转
System.out.println(sb);
3. StringBuilder

定义:也是可变的字符序列,它和StringBuffer的方法作用相同。

注意:区别在于StringBuffer线程同步,但效率稍低,StringBuilder线程不同步,但效率稍高。

三. Math类

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

常见方法

public static double abs(double a) :返回 double 值的绝对值。    
public static double ceil(double a):返回大于等于参数的最小的整数。
public static double floor(double a):返回小于等于参数最大的整数。    
public static long/int round(double a):返回最接近参数的 long/int。(相当于四舍五入方法) 

四. Random类

此类的实例用于生成伪随机数。

查看构造方法

public Random():创建一个新的随机数生成器。

查看成员方法

public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值,且必须是一个正数,否则抛出异常:Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive。 使需求:用Random类,生成3个10以内的随机整数

  1. Random r = new Random(种子),r.nextInt(4); 每次生成的都是同一个值,一般不传这个种子
  2. r.nextInt(4),该随机数的范围[0,3),不包含上界
Random random = new Random();
//传一个上线 正数,不包括bound(10) [0,bound)
System.out.println(random.nextInt(10));

五.System类

java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。

  • currentTimeMillis

    实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值  
    
  • arraycopy方法

    Arrays工具类,copyOf()系列方法,实际上,该方法最终调用的还是System.arraycopy,将 数组中指定的数据拷贝到另一个数组中。 数组的拷贝动作是系统级的,性能很高。

    public static int[] copyOf(int[] original, int newLength) {
        int[] copy = new int[newLength];
        System.arraycopy(original, 0, copy, 0,
                         Math.min(original.length, newLength));
        return coy;
    }
    

六. 包装类

1. 概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为 对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。

2. 拆装箱
装箱:将基本类型直接复制给引用类型

拆箱:将引用类型变为基本类型
3. 基本类型和字符串转换
  1. 字符串—>基本数据类型

    以整数为例:Integer.parseInt("123"),其他依次类推,parseXxx()

    String str = "123";
    int abc = Integer.parseInt(str);
    
  2. 字符串—>包装类型valueOf

    Integer aa = Integer.valueOf("1123");
    
  3. 基本类型—>字符串

    int age = 10;
    String ageStr = a.toString();
    String ageStr2 = Integer.toString(age);
    
  4. 不同数字之间的类型转换:xxxValue

    Double i = 1.0;
    int i1 = i.intValue();
    

总结

1.基本数据类型的包装类-------对于八种基本数据类型,Java提供了对应的八种包装类:
Integer对应int
Character对应char
剩下六种将基本数据类型首字母转大写即可。
2.
创建包装类对象时,只需要将基本数据类型值传入
构造方法即可。

3.
从包装类对象中获取基本数据类型值,需要调用该
对象的xxxValue();
① parseDouble()------将字符串中的数值取出,得到基本数据类型

② valueOf()   -----将字符串中的数值取出,得到基本数据类型包装类对象

4.自动打包和自动解包
又为自动装箱和自动拆箱,在5.0及以后的版本的JDK中,凡是需要传入基本数据类型包装类对象的地方,只需要传入其对应的基本类型值即可。凡是需要传入基本数据类型的地方,只需要传入其对应的包装类即可。

七. 大数据对象

1. 整数BigInteger
  • Integer类作为int的包装类,能存储的最大整型值为231 -1,Long类也是有限的,最大为263 -1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类都无能为力,更不用说进行运算了。
  • java.math包的BigInteger 可以表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。

常用API

public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。
BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger
BigInteger subtract(BigInteger val) :返回其值为 (this val) 的 BigInteger
BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger
BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数相除只保留整数部分。
BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。
BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。
BigInteger pow(int exponent) :返回其值为 (this exponent ) 的 BigInteger。
2.小数BigDecimal

对于更精确的数据需求,使用BigDecimal进行处理

常用API

public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
代码

public void testBigInteger() {
    BigInteger bi = new BigInteger("12433241123");
    BigDecimal bd = new BigDecimal("12435.351");
    BigDecimal bd2 = new BigDecimal("11");
    System.out.println(bi);
    // System.out.println(bd.divide(bd2));
    System.out.println(bd.divide(bd2, BigDecimal.ROUND_HALF_UP));
    System.out.println(bd.divide(bd2, 15, BigDecimal.ROUND_HALF_UP));
}

注意:计算结果仍然是一个BigDecimal类型,我们可以调用xxxvalue()将它转回去想要的数据类型。

八.枚举类

在给定的若干值范围内进行取值

定义格式:enum 类名{

值1,值2…

}

使用格式:类名 变量名=类名.值;

总结

java基础第五弹,主要介绍了java中的一些常见类的相关知识。希望我对知识梳理的成果对各位读者有所帮助。再次感谢各位的阅读,一个菜鸟的起飞之路。

标签:BigInteger,Java,String,五弹,System,---,字符串,println,out
From: https://blog.csdn.net/qq_65124761/article/details/140779790

相关文章

  • LeetCode - #107 二叉树的层序遍历 II
    文章目录前言1.描述2.示例3.答案关于我们前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到105期,我们会保持更新时间和进度(周一、......
  • Java基础第四弹-----多态、抽象类、接口和异常
    文章目录Java基础知识全解第四弹一、final1.概述2.使用场景3.总结二、继承中的构造方法三、前景知识1.Object2.toString()3.instanceof4.equals()四、多态1.多态定义2.多态条件3.两种转型方式3.1向上转型3.2向下转型4.为什么要转型五、抽象类1.定义2.格式3.抽象......
  • tomato-靶机渗透
    tomato-靶机一、安装靶机环境下载双击.ova文件,写文件名路径导入打开虚拟机用NAT模式编辑–>虚拟网络编辑器查看IP段二、信息收集1.御剑端口扫描查找该虚拟机的IP访问网站扫目录dirbhttp://192.168.30.130收集到目录/server-status/antibot_image//ind......
  • 深圳大学-计算机系统(1)实验-简单游戏设计
    实验目的与要求(1)熟悉和理解LC-3的子程序指令格式。(2)掌握利用子程序解决问题的思路,加深对底层硬件的理解。实验内容具体一点:https://users.ece.utexas.edu/~patt/04f.306/LabAssignments/Lab5/lab5.html根据点和盒子游戏提供的一个通用框架以及一些提供好的子程序。......
  • 阿里云天池——零基础入门数据挖掘 - 二手车交易价格预测
    赛题数据见官网:零基础入门数据挖掘-二手车交易价格预测_学习赛_天池大赛-阿里云天池的赛制(aliyun.com)因为本人第一次接触神经网络的深度学习,在此就将教学代码逐框解析1.1导入用于数据处理、模型训练、数据加载以及可视化的Python库%matplotlibinlinefromsklearn.m......
  • javadoc
    javadoc命令是用来生成自己API文档的参数信息@author作者名@version版本号@since指明需要最早使用的jdk版本@param参数名@return返回值情况@throws异常抛出情况packagecom.studen.base;/***@authorshudou*@version1.0*@since1.8*/publicclass......
  • CF1523D Love-Hate 题解
    CF1523DLove-Hate题解传送门题目大意:给定\(m\)和\(n\)个集合,而且这\(n\)个集合的元素都是\(1\)~\(m\)中的数且没有重复,而且大小都不超过\(15\)。求一个最大的集合,使得这个集合是至少\(\left\lceil\frac{n}{2}\right\rceil\)个集合的子集。先想一个问题:题目是让......
  • P8347 「Wdoi-6」另一侧的月 题解
    P8347「Wdoi-6」另一侧的月题解第一次自己思考出来紫题,题解纪念一下。下面为大家讲解如何一步步推到最终结论:首先,原树没有根,不妨设它的根为\(1\),将它转化成有根的,便于操作。为了方便描述,我们称将一个非根节点的点的父亲删去,保留含这个点的连通块这个操作为截取操作(就是......
  • 多队列网卡-虚拟机Linux系统设置
    多队列网卡安装作者使用的是ubuntu20.04,VMWARE首先查看系统上的网卡ipa#查看网卡信息查看ens33是否支持多队列网卡,如果是下图这种情况就是不支持多队列网卡。cat/proc/interrupts|grepens33#proc是linux虚拟文件系统关闭虚拟机,添加多个网卡修改VMWAE......
  • Java初学-Day3
    一、数据类型(本期只讲基本数据类型)变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。Jav......