/*
* 已知字符串,查询子字符串:subString();
*
*/
public void subStringTest(){
//1.获得诞辰
String str="110102198312262111";
// String month = str.substring(10,11);
// String date = str.substring(12,13);
String month = str.substring(10,11+1);
String date = str.substring(12,13+1);
System.out.println("诞辰"+month+" "+date);
//应当是12月26日,成果1月2日
//问题:想要获得两位数,但仅取得1位
//解决:public String substring(int beginIndex, int endIndex)用法解释:返回一个字串,其中start是起始的索引,end是终止的索引,返回的字串包括起始index的字符,但是不包括end的字符。
//2.依据最后一名判性别:女:偶数或X 男:奇数
//倒数第n位,都是长度-n
String gender = str.substring(str.length()-1,str.length());
System.out.println("性别"+(gender.equals("X")?"女":Integer.valueOf(gender)%2==0?"女":"男"));
//解释:字符串不能应用(int)方法强迫转换为整数,只能靠Integer.valueOf()
//判读奇偶:%2==0为偶数,否则奇数
//3.应用*隐蔽出诞辰期:前6位+8个*+后4位
// 0-5 length-4
String str1 = str.substring(0,5+1)+"********"+str.substring(str.length()-4,str.length());
System.out.println("中奖观众"+str1);
//4.盘算年纪 2018-身份证中6-9位
int age = 2018-Integer.valueOf(str.substring(6,9+1));//不要应用固定某个数字,应用函数更加灵巧
System.out.println("年纪"+age);
}
/*
* 去除字符串前后空字符串:trim (不去除中间的字符串)
* 如果字符串前后包括空字符,返回一个新字符串对象
* 否则,返回原字符串对象
*/
public void trimTest(){
String name = "ironman";
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String input = sc.nextLine();
String trimed = input.trim();
System.out.println(trimed==input?"同一个字符串":"新字符串");
String trimd= input.trim();//主动去掉输入中过剩的空字符(空格,tab等)
System.out.println(trimd.equals(name)?"登录胜利":"用户名不存在");
}
/*
* 返回某个地位上的字符串
*/
public void charAtTest(){
String str = "110102198312262111";
//断定性别
char gender = str.charAt(str.length()-1);
System.out.println(gender);
//强调:charAt返回的是字符类型,所有数字都以Unicode存储,
System.out.println(gender+1);
//解决:char内容的数字,转换为整数进行盘算 对48取余
System.out.println(gender%48);
//断定性别
System.out.println(gender=="X"||gender%48%2==0?"女":"男");
}
/*
* 找出字符串中反复的字符
*/
public void repeat(){
String str = "no zuo no die";
//算法:从第一个字符开端,遍历str中每一个字符。到倒数第2个字符
// 每取出当前地位的字符:
// 应用indexOf,从当前地位以后开端,查找是不是雷同
// 只要找到当前反复字符,就打印当前字符
for (int i = 0; i < str.length(); i++) {
char now = str.charAt(i);
if (now!=" "&&str.indexOf(now,i+1)!=-1) {//等于负1解释没有涌现反复,没有它的地位
if (str.lastIndexOf(now,i-1)==-1) {//断定后面有无反复的
System.out.println(now+",");
}
}
}
}
/*
* 分割字符串为多段字符串:split
* 需求:将字符串中每一个单词首字符,变成大写
*/
public void splitTest(){
String str = "you can you up";
//只要对字符串分段处置
//先用split分段,再遍历分段后的子字符串数组
//step1:依据指定字符:空格 切割字符串
String[] strs = str.split(" ");
//step2:遍历切割后的子字符串
for (int i = 0; i < strs.length; i++) {
//对每一个单词分离处置
char first = strs[i].charAt(0);
if (first>="a"&&first<="z") {//解释是一个小写字母
//小写变大写:减32
first-=32;
//将大写字母拼回原字符串
strs[i]=first+strs[i].substring(1, strs[i].length());
}
System.out.println(strs[i]);
}
//遍历数组中每一个单词,拼回原字符串
str="";
for (int i = 0; i < strs.length; i++) {
str+=strs[i]+" ";
}str=str.trim();
System.out.println(str);
}
public void Server(String cmd){
if (cmd.startsWith("login")) {
System.out.println("server:欢迎"+cmd.substring(6));
}else if(cmd.startsWith("logout")){
System.out.println("server:再见"+cmd.substring(7));
}else if (cmd.startsWith("file:")) {
if (cmd.endsWith(".exe")) {
System.out.println("server制止传输可履行文件");
}else{
System.out.println("server正在传输"+cmd.substring(5));
}
}
}
/*
* 摹拟客户端向服务器发送指令
*/
public void Client(){
Server("login:yang");
Server("logout:yang");
Server("file:qq.rar");
}
/*
* 邮箱验证
*/
public void caseTest(){
/*
//邮箱验证
String mail = "[email protected]";
Scanner sc = new Scanner(System.in);
System.out.println("请输入邮箱地址");
String input = sc.next();
//问题:大小写
//需求:大小写等量齐观(主动转化)
//解决:将用户统一转换为大写或小写
if (mail.equals(input.toLowerCase())) {
System.out.println("邮箱名已被注册");
}else{
System.out.println(input+"注册胜利!");
}*/
/*验证码 部份大小写*/
String auth="4Eda";
Scanner sc = new Scanner(System.in);
System.out.println("请输入验证码:");
String input = sc.next();//验证码两个变量都要转换一样的大写或小写
if (auth.toUpperCase().equals(input.toUpperCase())) {
System.out.println("验证通过");
}else{
System.out.println("验证失败:");
}}
@Test
/*
* 将其他类型转换为字符串类型:valueOf()不依附任何对象属于静态办法
*/
public void valueOfTest(){
double pi=3.1415926;
int value=123;
boolean flag = true;
char[] charArr = {"a","b","c","d"};
String str = String.valueOf(pi);
str = String.valueOf(value);
str = String.valueOf(flag);
//valueOf办法将char类型的数组,拼接为一个字符串
str = String.valueOf(charArr);
System.out.println(str);
//默许的toString办法,输出对象的类型和对象的HashCode
System.out.println(charArr.toString());
//xx对象:toString():必需先创立对象,再调用对象的toString()办法
//String.valueOf():属于静态办法,不须要借助任何对象
//大多数valueOf办法,调用的都是toString办法
//建议大家应用valueOf办法
// 由于valueOf办法没有对象时,也能够调用,避免了空指针异常
// valueOf比toString要硬朗
/*
* 已知字符串,查询子字符串:subString();
*
*/
public vo