java小白训练营day05-API:API+字符串工具类+身份证解析
Posted 长安紫薯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java小白训练营day05-API:API+字符串工具类+身份证解析相关的知识,希望对你有一定的参考价值。
API手册
注意:chm文件从网络下载后,菜单能展现点击后内容不能展现,按下面图修改下即可
api
java提供api非常方法,数万类,每个类又有很多方法。这些开发者就不需要自己去写了,开发的效率就提高了。
java是所有的语言中最丰富的一个。
提供两个:java* 基础核心类,javax* 扩展类
91年诞生,太早,很多内容是不够成熟的,经过这么多年发展,有些内容不符合时代,过气。
java是否老了?
java确实老了,很多api过气,作废,被新的内容所替代。
Spring 春天,它就是结束了java的冬天,迎来开发者春天。SpringBoot、Spring框架、SpringMVC框架、SpringCloud微服务
怎么使用api手册?
大概知道要查询什么内容
1)目录,明确知道哪个类的哪个方法
2)搜索,搜索关键字Random,查询说明
早期开发,网上文章非常少,一般就是去官网下载api手册,来查询。看书。CSDN
搜索引擎非常成熟,网上分享的文章和案例也非常多,百度
字符串工具类
常见的字符串的api
package test;
import org.junit.Test;
//常用字符串api的方法
public class TestString {
@Test //转义字符
public void cover() {
System.out.println("==\\n==\\n==");
}
@Test //拼串
public void concat() {
System.out.println("abc" + 123);
System.out.println("abc".concat("123"));
String s = "abc" + 12345678;
System.out.println("字符串长度:" + s.length());
}
@Test //去掉字符串表两边的空格
public void trim() {
//前面有空格,中间有空格,后面有空格
String s = " 789 夏季 就快过完了 ";
System.out.println( s.trim() );
}
@Test //获取字符串中某个位置的字符
public void charAt() {
//字符串底层就是字符数组,获取某个字母就可以通过数组的下标来访问
String s = "ABCDEFGHIMN";
//获取B
char c1 = s.charAt(1);
System.out.println( c1 );
System.out.println("第一个字符:" + s.charAt(0) );
System.out.println("最后一个字符:"
+ s.charAt(s.length()-1) ); //太长可以换行
}
@Test //截取子串,字符串的一部分
public void substring() {
String mail = "chen@tedu.cn";
//需求:用户名tony和域名tedu.cn?
//按位置来截取
String name = mail.substring(0, 4);
System.out.println("用户名:"+ name);
//技巧:大概预估,速度快,错了,调整!
String domainName = mail.substring(5, 12);
System.out.println("域名:" + domainName);
//如果截取字符串是到最后,第二个参数就不需要,默认就是到最后
domainName = mail.substring(5);
System.out.println("域名:" + domainName);
}
@Test //获取某个字符串它出现的位置索引值
public void indexOf() {
//找规律?邮箱规律 xxx@domain
//只要找到@的位置,就可以动态获取了
String mail = "tonywang@baidu.com";
int pos = mail.indexOf("@");
System.out.println("特殊的@它的位置:" + pos);
System.out.println("用户名:" + mail.substring(0, pos));
System.out.println("域名:" + mail.substring(pos+1) );
}
@Test //获取某个字符串出现位置
public void lastIndexOf() {
//String name = "歌手-刘若英-后天.mp3"; //歌曲名称
String name = "歌手.刘若英.后天.mp3"; //歌曲名称
//特点:它信息是通过.作为分隔符,.mp3为歌曲的类型
//获取文件后缀的名称
int pos = name.lastIndexOf("."); //获取.的位置
//如果有多个.,indexOf获得从左边数第一个.出现的位置
//lastIndexOf获得从右边数第一个
String extName = name.substring(pos+1);
System.out.println("扩展名:" + extName);
}
@Test //把英文转换大写或者小写
public void covert() {
String name = "tonyChan";
//大写,飞机票名字全大写
System.out.println( name.toUpperCase() );
//小写
System.out.println( name.toLowerCase() );
}
@Test //判断前缀和后缀
public void withs() {
String n1 = "歌曲.周杰伦.双节棍.mp3"; //歌曲
String n2 = "视频.梁静茹.勇气.mp4"; //视频
//判断是否为歌曲开头
System.out.println( n1.startsWith("歌曲") ); //true
System.out.println( n2.startsWith("歌曲") ); //false
if(n1.startsWith("歌曲")) {
System.out.println(n1+" 是歌曲");
}else {
System.out.println(n1+" 不是歌曲");
}
//判断是否为.mp3结束
System.out.println( n1.endsWith("mp4") ); //false
System.out.println( n2.endsWith("mp4") ); //true
if(n2.endsWith("mp4")) {
System.out.println(n2+ " 是视频");
}else if(n2.endsWith("mp3")) {
System.out.println(n2+ " 是音频");
}
}
}
案例:数字替换
package test;
import org.junit.Test;
public class TestReplace {
@Test //替换数字
public void replaceNumber() {
//特征,字符中含有手机号(快递信息)
String s = "王同学 130,李同学 133,陈同学 186";
//需求:保证信息安全,把手机号都隐藏起来用*替代
//1.传统方式
//思路:获取每个字符,然后判断是否为数字,是数字就用*替代
//第一步:获取每个字母 charAt(index) 0~length
String n = ""; //空的字符串(空串)
for(int i=0; i<s.length(); i++) {
//System.out.println(s.charAt(i));
//第二步:判断当前字符是否为数字 char ASCII 0(48)~9(57),if判断
char c = s.charAt(i); //当前的字符,ascii整数值
if(c>=48 && c<=57) { //0~9直接
//System.out.println("*");
n += "*";
}else {
//System.out.println(c);
n += c;
}
}
System.out.println(n);
//2.正则方式
//正则表达式:\\\\d,代表匹配数字0~9
String x = s.replaceAll("\\\\d", "*"); //把数字替换*
System.out.println(x);
}
}
身号解析
package test;
/*
* 身号的解析:610113198009102113
* 特征,还有什么信息呢?
* 1)18位
* 2)前6位:地址码610113 陕西省西安市,GB国家标准
* 3)中间8位:出生年月,1980年09月10日
* 4)后面3位:顺序号,顺序号最后一位奇数代表男,偶数代表女
* 5)最后一位校验码
*/
public class TestCardNo {
public static void main(String[] args) {
//身号
String cardNo = "610113198009102113";
if(cardNo.length()==18) {
String addressNo = cardNo.substring(0, 6);
System.out.println("地址码:" + addressNo);
String birthday = cardNo.substring(6, 14);
System.out.println("出生年月:" + birthday);
String sno = cardNo.substring(14, cardNo.length()-1);
System.out.println("顺序号:" + sno);
String sex = sno.substring(sno.length()-1);
//把字符串转换整数api,Integer.parseInt("1")
int n = Integer.parseInt(sex); //类型转换
if(n%2 == 0) { //利用取余判断是偶数还是奇数
System.out.println("性别:女");
}else {
System.out.println("性别:男");
}
String checkNo = cardNo.substring(cardNo.length()-1);
System.out.println("校验码:" + checkNo);
}else {
System.out.println("身号不正确!");
}
}
}
小结
以上是关于java小白训练营day05-API:API+字符串工具类+身份证解析的主要内容,如果未能解决你的问题,请参考以下文章
java小白训练营2109-day05-API:API+字符串工具类+身份证解析