硅基计划3.0 知识探究 常见类方法
文章目录
- 一、Character
- 1. 判断字符是否为10以内数字
- 2. 判断字符是否为字母
- 3. 判断是否为大小写字母
- 4. 大小写转换
- 5.指定进制转换
- 二、String
- 1. 求字符串长度
- 2. 获取指定下标字符
- 3. 截取字符串
- 4. 内容比较
- 5. 返回字符或字符串出现的位置下标
- 6. 移除首尾的空格(空白字符)
- 7. 字符串拼接
- 8. 字符串替换
- 9. 检测字符串中是否包含你所指定的子串
- 10. 指定符号分割字符串
- 三、Integer、Long、Double、Float
- 1. 数字类字符串解析为十进制
- 2. 返回整数的二进制字符串
- 3. 返回整数的十六进制字符串
一、Character
1. 判断字符是否为10以内数字
Boolean ret = Character.isDigit('6');
System.out.println(ret);//true
2. 判断字符是否为字母
Boolean ret1 = Character.isLetter('g');
Boolean ret2 = Character.isLetter('4');
System.out.println(ret1);//true
System.out.println(ret2);//false
3. 判断是否为大小写字母
Boolean ret3 = Character.isUpperCase('G');
Boolean ret4 = Character.isLowerCase('h');
System.out.println(ret3);//true
System.out.println(ret4);//true
System.out.println("根据UTF-8序列号也可以判断是不是⬇️");
Boolean ret5 = Character.isUpperCase(71);
System.out.println(ret5);//true
Boolean ret6 = Character.isLowerCase(71);
System.out.println(ret6);//false
4. 大小写转换
char ret7 = Character.toLowerCase('A');
System.out.println(ret7);//a
char ret8 = Character.toUpperCase('g');
System.out.println(ret8);//G
5.指定进制转换
有两个参数,一个是字符,另一个是这个字符在你指定的进制中的值是多少
int result = Character.digit('A',16);
System.out.println(result);//10
还有诸如实例化方法compareTo
之类的,就不列举了
二、String
1. 求字符串长度
求长度的时候,空格也是被算进去的
String s = "hello world";
int length = s.length();
System.out.println(length);
2. 获取指定下标字符
这个在很多算法题都有考到,很重要
char ret1 = s.charAt(0);
System.out.println(ret1);//h
3. 截取字符串
有从指定下标到结尾的,也有指定范围的,在Java中范围一般都是左闭右开
String s1 = s.substring(6);//从指定下标到结尾
System.out.println(s1);//world
String s2 = s.substring(0,5);//左闭右开
System.out.println(s2);//hello,没有空格
4. 内容比较
有区分大小写的equals
方法,也有不区分大小写的equalsIgnoreCase
方法
Boolean ret2 = s.equals(s);//区分大小写
System.out.println(ret2);//true
String str = "HELLO WORLD";
Boolean ret3 = s.equalsIgnoreCase(str);//不区分大小写
System.out.println(ret3);//true
5. 返回字符或字符串出现的位置下标
支持Unicode码值,也就是说可以传数字让其根据码值找字符串中对应的下标,找不到返回-1
当然还有倒着查找的lastIndexOf
,参数都跟正序查找一样的,这里就不列举了
String str1 = "hello and 2025";
int index = str1.indexOf(97);//对应'a'字符的Unicode码值
System.out.println(index);//6
int index1 = str1.indexOf(97,4);//还可以指定范围查找
System.out.println(index1);//6
System.out.println("最重要的还是查找字符⬇️");
int index2 = str1.indexOf('a');
System.out.println(index2);//6
int index3 = str1.indexOf("h",4);
System.out.println(index3);//-1
6. 移除首尾的空格(空白字符)
String str2 = " hello world ";
String result = str2.trim();
System.out.println(result);//hello world
7. 字符串拼接
String str3 = "2025";
String result2 = result.concat(str3);
System.out.println(result2);//hello world2025
8. 字符串替换
可以把旧的指定的字符串替换成新的你所指定的字符串
String result3 = result2.replace("hello","Hello");
System.out.println(result3);//Hello world2025
9. 检测字符串中是否包含你所指定的子串
Boolean result4 = result2.contains("hello");
System.out.println(result4);//true
10. 指定符号分割字符串
如果你结尾存在空的字符串,会被丢弃,当然你可以使用重载的方法让其不丢弃,只需要传第二个参数-1
如果你有特殊的字符比如"|"
、"\n"
等等需要加上转义字符\\
才能识别
String str4 = "东,西,南,北";
String [] array = str4.split(",");//逗号分隔
for (String string : array) {System.out.print(string+" ");//东 西 南 北
}
System.out.println();
System.out.println("---------");
String str5 = "东 西 南 北";
array = str5.split(" ");//空格分割
for (String string : array) {System.out.print(string+" ");//东 西 南 北
}
System.out.println();
System.out.println("---------");
String str6 = "东,西,南,北,";
array = str6.split(",");//结尾空字符串会被丢弃
for (String string : array) {System.out.print(string+" ");//东 西 南 北
}
System.out.println();
System.out.println("---------");
//但是我们可以设置参数让其保留
String str7 = "东,西,南,北, ";
array = str7.split(",",-1);
for (String string : array) {System.out.print(string+" ");//"东 西 南 北 "
}
System.out.println();
System.out.println("---------");
//对于一些特殊的字符串就需要转义
String str8 = "东|西|南|北";
//array = str8.split("|");//错误写法
array = str8.split("\\|");//正确写法
for (String string : array) {System.out.print(string+" ");//东 西 南 北
}
三、Integer、Long、Double、Float
这四个内方法基本相似,都是拆箱装箱以及字符串转换的操作,这里我们就以Integer
类为例
1. 数字类字符串解析为十进制
当然我们也可以指定进制去解析
//1.数字类型字符串解析成十进制
int ret1 = Integer.parseInt("111");
System.out.println(ret1);//111
System.out.println();
System.out.println("---------");
//我们还可以按照进制去解析,比如下面的01按照二进制解析
int ret2 = Integer.parseInt("01",2);
System.out.println(ret2);//1
System.out.println("=========");
2. 返回整数的二进制字符串
String s1 = Integer.toBinaryString(8);
System.out.println(s1);//1000
3. 返回整数的十六进制字符串
String s2 = Integer.toHexString(255);
System.out.println(s2);//ff
255 的十六进制表示为 ff(因为 15 * 16^1 + 15 * 16^0 = 255)
其他的比如同类型比较等等就不多赘述了
Git码云仓库链接