IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java小白训练营2109-day05-API:API+字符串工具类+身份证解析 -> 正文阅读

[Java知识库]java小白训练营2109-day05-API:API+字符串工具类+身份证解析

API手册

下载jdk1.5手册

注意:chm文件从网络下载后,菜单能展现点击后内容不能展现,按下面图修改下即可
在这里插入图片描述

api

在这里插入图片描述

java是否老了?

java91诞生,已经老了,它很多内容已经被第三方所淘汰,很多内容就被spring替代。
.net 闭源(微软专家在维护)不思进取,傲慢,
java开源(全球开发者)一直在改进 Spring。Apache 。Eclipse
java 自身老了,但它开创java体系,由于第三方这些开源企业和开发者支持,它无敌,其他语言没有这么多支持这
php 网站(新浪微博)倒了,鹿晗事件 i++。高并发!
京东 早期.net aspx 倒了,账。高并发!
淘宝 java
Spring+Nginx 负载均衡+Redis分布式内存缓存+MyCat+Docker+k8+Hadoop+Spark+Flink
java自身老了,但是java生态链体系非常完善,是任何一个语言所不能抗衡!

字符串工具类

在这里插入图片描述

常见的字符串的api

package test;

import org.junit.Test;

public class TestString {
	@Test 
	public void api() {
		//concat 字符串连接符,拼串
		System.out.println("abc"+123);
		System.out.println("abc".concat("123"));

		String s = "今天是个好日子";
		System.out.println("字符串长度:" + s.length());
		
		//charAt 获取字符串中某个字符 charAt(index) 下标
		System.out.println("第一个字符:"+ s.charAt(0));
		System.out.println("第八个字符:"+ s.charAt(7));
		
		//把字符串的每个字获取到,并且打印
		for(int i=0; i<s.length(); i++) {
			System.out.println( s.charAt(i) );
		}
	}
	
	@Test //去掉字符串两边的空格
	public void trim() {
		String s = " 陈晨  上 it 课非常开心   ";
		System.out.println( s.trim() );
	}
	
	@Test	//截取字符串(子串)
	public void substring() {
		String name = "陈晨";
		//截取姓氏和名字
		System.out.println("姓氏:"+ name.substring(0, 1));
		//从当前位置开始截取到最后
		System.out.println("名字:"+ name.substring(1));
		
		String songName = "周杰伦-双节棍.mp3";
		//歌曲名称
		System.out.println("歌曲名称:"+songName.substring(4,7));
		
		//扩展名 .mp3
		System.out.println("扩展名:" + songName.substring(7));
		
		//indexOf 找到某个字符的位置,返回位置的索引的值(下标)
		System.out.println(".的位置:" + songName.indexOf("."));
		int pos = songName.indexOf("."); //把位置信息记录下来
		
		System.out.println("歌曲名称:"+songName.substring(0, pos));
		System.out.println("扩展名:"+songName.substring(pos));
	}
	
	@Test //获取某个字符从右向左首次出现的位置
	public void lastIndexOf() {
		String song = "周杰伦.双节棍.mp3";
		int pos1 = song.indexOf("."); //从左向右算第一个
		System.out.println(pos1);
		
		int pos2 = song.lastIndexOf("."); //从右向左算第一个
		System.out.println(pos2);
		
		System.out.println("歌曲名称:" + song.substring(0, pos2));
		
		String email = "chenzs@tedu.cn";
		int pos3 = email.lastIndexOf("@");
		//邮箱名字
		System.out.println("邮箱名字:" + email.substring(0,pos3));
		//域名
		System.out.println("域名:" + email.substring(pos3+1));
	}
	
	@Test //转换大小写,针对英文
	public void toCase() {
		String name = "WangGeiBi";
		System.out.println("大写:" + name.toUpperCase());
		System.out.println("小写:" + name.toLowerCase());
	}
	
	@Test //前缀prefix 和后缀suffix
	public void toWith() {
		String s = "刘若英.后天.mp3";
		//判断它是mp3歌曲
		if(s.startsWith("刘若英") && s.endsWith(".mp3")) {
			System.out.println("这是mp3的音频");
		}else {
			System.out.println("这不是一个音频文件");
		}
	}
	
	@Test //替换 replace和replaceAll
	public void replace() {
		String name = "刘若英歌曲非常好听,歌曲:后天";
		//把“歌曲”换成英文song
		System.out.println( name.replace("歌曲", "song"));
		//只替换第一个 regex
		System.out.println( name.replaceFirst("歌曲", "song"));
		
		String name2 = "刘若英.后天.mp3";
		//把.替换-号
		System.out.println( name2.replace(".", "-"));
		System.out.println( name2.replaceFirst(".", "-"));
		//元字符,正则表现形式,元字符.就代表每个字符
		System.out.println( name2.replaceAll(".", "-"));
		
		//regex 正则表达式,
		//不是正则中的元字符点而要求是字母的点
		System.out.println( name2.replaceAll("\\.", "-"));
	}
	
	@Test
	public void regex() {
		//地址信息中屏幕电话号码,隐藏电话号码,*
		String address = "北京中关村110号楼 陈晨 135";
		//不用正则来实现
		//解决方法:for遍历每个字符,判断这个字符是否为0(48)~9(57),如果是替换*
		String s = "";	//空串
		for(int i=0; i<address.length(); i++) {
			char c = address.charAt(i); //获取当前的字符
			if(c>=48 && c<=57) {
				//System.out.println(c);
				s += "*";
			}else {
				s += c;
			}
			System.out.println(s);
		}
		
		System.out.println("----------------");
		
		//用正则来实现
		System.out.println(address);
		//正则:匹配每一个数字(\d)
		System.out.println( address.replaceAll("\\d", "*"));
	}
}





身号解析

package test;

import org.junit.Test;

/*
身号里隐含了很多的信息:
1.号码的结构 610113 19880910 214 3
身号是特征组合码,由十七位数字本体码和一位校验码组成,共计18位。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。
2.地址码
表示编码对象常住户口所在县(县级市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3.出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4.顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5.校验码
根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

 */
public class TestCardNo {
	/*
	 * 分析
	 * 1、地址码 addres,substring
	 * 2、出生日期 birthday,substring
	 * 3、顺序码 sno,substring
	 * 4、性别,sex,上面顺序最后一位得到 substring,把字符串转换整型,取余2
	 * 	if判断,结果为0,输出女,结果为1,输出男
	 * 5、校验码,checkNo,substring
	 */
	@Test
	public void cardNo() {
		//字符串转换整数,需要api,Integer.parseInt("");
		String s = "126";
		int i = Integer.parseInt(s);
		System.out.println(i);
		
		//取余
		System.out.println( i%2 );  //i整数对2进行取余,余数
	}
	
	@Test
	public void cardNo2() {
		String cardNo = "610113198809102163";
		
		if(cardNo.length() == 18) {
			String address = cardNo.substring(0,6);
			System.out.println("地址码:" + address);
			
			String birthday = cardNo.substring(6, 14);
			System.out.println("出生年月:" + birthday);
			
			String sno = cardNo.substring(cardNo.length()-4, cardNo.length()-1);
			System.out.println("顺序号:" + sno);
			
			String s = sno.substring(sno.length()-1); //获取最后一位
			System.out.println("顺序号最后一位:" + s);
			
			int sex = Integer.parseInt(s); //转换字符串为整数
			if(sex%2 == 0) { //取余
				System.out.println("性别:女");
			}else {
				System.out.println("性别:男");
			}
			
			String checkNo = cardNo.substring(cardNo.length()-1);
			System.out.println("校验码:" + checkNo);
		}else {
			System.out.println("号码非法!");
		}
	}
}



小结

1)while循环,do循环
for和while形式不同,
迭代数组 for,遍历int i=0,s.length()-1,和数组形式匹配。
while(true){ … return … }
do和while的区别? do最少执行一次,while可能一次都不执行
2)api application interface java的api最丰富
java很多api过气,java自身已经老了,但是java构建生态链体系,这个生态链太强大,
京东、淘宝的双11(8亿),已经证明中国软件在应用的层面第一。(亚马逊 4亿)数量量,高并发
3)String 字符串开发中使用最多的api
a. 知道这些方法的存在(学习中积累,工作中长期,CSDN看看别人帖子,百度)
b. 好的学习方法,把日常遇到的新的知识写到文件中,忘了,搜索

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:48:08  更:2021-09-30 11:49:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:24:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码