String常用API整理
作者:互联网
String常用API整理
参考网址:
https://mp.weixin.qq.com/s?__biz=MzAwNTA5MzMxMw==&mid=2650642537&idx=2&sn=05908d738d3cbf6d6f42f9c383dc7605&chksm=8328dac7b45f53d15060c17ef61d36b0a04c255cdd182180bec058f2f15e3a19d2256da24cf8&mpshare=1&scene=23&srcid=11268GhCJy5RRr0rGPqwyO5s&sharer_sharetime=1606457970961&sharer_shareid=9d1e76e919cc0b2f3ca23ed1f5ef67a8#rd
前言
为啥要整理StringAPI
1.面试会问
很现实的问题,面试我都被问了好几次,如果知道多一点会更好,比说length(),subString()这些简单的方法好
2.工作中经常用到
昨天我就遇到字符窜拼接的问题了,而且是大批量的操作字符窜,所以整理一下也是很有必要的
1.入门练习实战demo
说明:
这是一个关于String的综合练习,包括了很多API,帮助回忆记忆
/**
* @Auther: shaoming
* @Date: 2020/11/27 14:26
* @Description:
* StringAPI集成练习
* 通过一窜身份证号,解析出用户信息
*/
public class CarNo {
public static void main(String[] args) {
//身份证编号
String carNo = "320772199306294425";
/**
* 1.获取地区码
*/
String areaCode = carNo.substring(0,6);
System.out.println("地区码: "+areaCode);
/**
* 2.输入用户的生日
* 使用三种方式表示生日,用到重要的两个方法
* String的subString()方法
* 基本数据类型包装类的valueOf()方法,例如Integer.vlueOf(String str)
*/
//2.生日
//2.1.第一种生日的表示方式(20201111)
String bir1 = carNo.substring(6,14);
System.out.println("表示生日的第一种方式: "+bir1);
//2.2.第二种生日的表示方式(2020年11月11日)
String year2 = carNo.substring(6,10);
String month2 = carNo.substring(10,12);
String day2 = carNo.substring(12,14);
System.out.println("第二种表示生日的方式 :"+year2+"年 "+month2+ "月 "+day2+"日");
/*
2.3第三种表示生日的方式
说明:2.2表示生日存在一个问题
如果用的的生日是20200101 ---->2020年01月01日
这样不好,我们预期看到的是
2020年1月1日 , 把数字前面的0去除
*/
String year3 = carNo.substring(6,10);
String month3 = carNo.substring(10,12);
//先给字符串转为int,数字01前面的0就没有了,使用Integer.valueOf(String str)方法
//然后先给1转为字符窜,使用String.valueOf(Integer i)方法
month3= String.valueOf(Integer.valueOf(month3));
String day3 = carNo.substring(12,14);
//处理方法同上
day3 = String.valueOf(Integer.valueOf(day3));
System.out.println("第三种方式表示生日 :"+year3+"年"+month3+"月"+day3+"日 ");
/**
* 3.判断性别
* 判断性别的要求:
* 看身份证号倒数第二位数字的奇偶性,奇数男性,偶数女性
*/
//过去倒数第二位的数字
String sexString = carNo.substring(carNo.length()-2, carNo.length()-1);
//转为数字判断奇偶性
Integer sex = Integer.valueOf(sexString);
if(sex%2==0){
System.out.println("性别为:女性");
return;//说明:此处一定要return,否则会出行逻辑错误
}
System.out.println("性别为:男性");
}
2.具体实例
说明:
因为string的API也很多,我记下我经常忘记的但是工作中常用的,或者说常被提及的API方法
2.1 忽略大小写的方法
这个方法经常用到,因为我们做模糊查询的时候经常需要忽略大小写,提高用户体验,否则因为大小写的问题,造成搜索失败,影响用户体验,其实所谓的模糊就应该忽略大小写
@Test
public void testequalsIgnoreCase(){
//用户输入用户名
String userName = "Admin";
//数据库用户名"admin"
if(userName.equalsIgnoreCase("admin")){
System.out.println("登录成功");
}
}
突然想到数据库mysql也是可以忽略大小写的
相关方法
select lower('JAVA') from dual --varchar转小写
select upper('java') frm dual --varhar转大写
2.2 去除空格
重点说明:
trim() 方法返回字符串的副本,忽略前导空格和尾部空格
2.3字符串替换
String str = “address”;
String newstr = str.replace(“a”,”A”);//newstr 的值为 Address
2.4判断字符串的开始与结尾
1 ) str.startsWith(String prefix)
该方法用于判断当前字符串对象的前缀是否是参数指定的字符串,其中, prefix 是指作为前缀的字符。
2 ) str.endsWith(String suffix)
该方法用于判断当前字符串是否是以给定的子字符串结束,其中, suffix 是指作为后缀的字符串。
String num1 = ”22045612”;
String num2 = “21304578”;
Boolean b = num1.startsWith(“22”);//b 为 true
Boolean b2 = num1.endsWith(“78”);//b2 为 false
Boolean b3 = num2.startsWith(“22”);//b3 为 false
Boolean b4 = num2.endsWith(“78”);//b4 为 true
2.5字符串分割
这也是我经常忘记的的一个String的API
注意:返回值是一个String类型的数组
@Test
public void testSplitBylimit(){
String str = new String("abc,def,ghi,gkl");
String[] split = str.split(",",2);
for (String s : split) {
System.out.println(s);
}
}
@Test
public void testSplit(){
String str = new String("abc,def,ghi,gkl");
String[] split = str.split(",");
for (String s : split) {
System.out.println(s);
}
}
个人csdn博客网址:https://blog.csdn.net/shaoming314
标签:常用,String,System,API,str,println,carNo,out 来源: https://blog.csdn.net/shaoming314/article/details/110234044