文章目录
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. 字符串拼接
- 由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象
- 在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以内的随机整数
- Random r = new Random(种子),r.nextInt(4); 每次生成的都是同一个值,一般不传这个种子
- 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. 基本类型和字符串转换
-
字符串—>基本数据类型
以整数为例:
Integer.parseInt("123")
,其他依次类推,parseXxx()
String str = "123"; int abc = Integer.parseInt(str);
-
字符串—>包装类型
valueOf
Integer aa = Integer.valueOf("1123");
-
基本类型—>字符串
int age = 10; String ageStr = a.toString(); String ageStr2 = Integer.toString(age);
-
不同数字之间的类型转换:
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