java小白训练营2109-day05-API:API+字符串工具类+身份证解析

Posted 长安紫薯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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", "*"));
	}
}






以上是关于java小白训练营2109-day05-API:API+字符串工具类+身份证解析的主要内容,如果未能解决你的问题,请参考以下文章

java小白训练营2109-day04-知识回顾

java小白训练营2109-day01搭建开发环境

java小白训练营2109-day05-知识回顾

java小白训练营2109-day03-知识回顾

java小白训练营2109-day06-OOP:面向对象+封装+继承+多态

java小白训练营2109-day04-流程控制:分支判断+循环迭代+异常