目录
包装类
装箱和拆箱
包装类型和String的转换,包装类的常用方法
Java_String
两种创建方式解析
测试
常用方法
Java_StringBuffer
String和StringBuffer的转换
常用方法
Java_StringBuilder
装箱和拆箱
package com.edu.wrapper; public class Interger01 { //演示int<-->Integer的装箱和拆箱 //手动装箱 int n1=100; Integer integer = new Integer(n1); Integer integer01 = Integer.valueOf(n1); //手动拆箱 int i = integer.intValue(); //jdk5后自动拆装 int n2 = 200; Integer integer3 = n2;//底层仍然是Integer.valueOf() int n3 = integer3;//底层仍然是integer.intValue(); }
包装类型和String的转换,包装类的常用方法
package com.edu.wrapper; public class Wrapper02 { public static void main(String[] args) { //包装类-->String Integer i =100; //自动装箱 //方式1 String str = i+""; //方式2 String str1 = Integer.toString(i); //方式3 String str3 = String.valueOf(i); //String-->包装类 String str4 ="123"; Integer integer = Integer.parseInt(str4);//自动转箱 char str5 = 'a'; System.out.println((char)((int)str5-32)); System.out.println(Integer.MAX_VALUE); } }
两种创建方式解析
测试
常用方法
package com.edu.string; import javax.swing.plaf.synth.SynthOptionPaneUI; public class demo01 { public static void main(String[] args) { /* String的常用方法 1.equals:比较字符串,区分大小写 2.equalsIgnorecase:比较字符串,忽略大小写 3.length:获取字符的个数,字符串长度 4.indexOf 获取字符在字符串对象中第一次出现的索引(也可以是字符串,字符串返回的是子串第一个字符的索引) 5.lastIndexof 获取字符在字符串对象中最后一次出现的索引(也可以是字符串) 6.subString 截取指定范围的子串 */ String name = "hello,张三"; System.out.println(name.substring(6));//获取从索引为6个字符后的字符(包括索引6) System.out.println(name.substring(2,5));//获取索引2-(5-1)的字符 /* 7.toUpperCase:转化为大写 8.toLowerCase:转化为小写 9.concat:字符串拼接 10.replace:将字符串中的内容替换 */ String s1 = "宝玉 and 薛宝钗 薛宝钗 薛宝钗"; //10将所有的薛宝钗替换为林黛玉 String s2 = s1.replace("薛宝钗","林黛玉");//本身对s1没有影响 //11 split:字符串切割 String poem = "1,2,3,4"; String[] split = poem.split(","); //以逗号为标准进行分割 //12 toCharArray :转换为字符数组 //13 compareTo :比较字符串大小 先长度再内容比较相减 //14 trim 去除前后空格 //15 charAt 获取索引字符 charAt[0] //16 format 格式化字符串 String name_John = "John"; int age = 10; double score = 98.3/3; char gender = '男'; //%.2f会四舍五入 String info = String.format("我的名字是%s年龄是%d,成绩是%.2f性别是%c,希望大家喜欢我",name_John,age,score,gender); System.out.println(info); /* 复用 String formatString = "我的名字是%s年龄是%d,成绩是%.2f性别是%c,希望大家喜欢我" String info = String.format(formatString,name_John,age,score,gender); */ } }
StringBuffer是一个容器,可以对字符串进行增加删除的,是可变长度的
String和StringBuffer的转换
package com.edu.string; public class demo02 { public static void main(String[] args) { /* StringBuffer构造器的使用 */ //1、创建一个大小为16的char[]; StringBuffer stringBuffer = new StringBuffer(); //2、通过构造器指定char[]大小 StringBuffer stringBuffer1 = new StringBuffer(100); //3、通过给一个String创建StringBuffer,char[] 大小就是str.length+16 StringBuffer stringBuffer2 = new StringBuffer("hello"); //String 和 StringBuffer的相互转换 String str = "hello tom"; //方式1 使用构造器 StringBuffer stringBuffer3 = new StringBuffer(str); //方式2 StringBuffer stringBuffer4 = new StringBuffer(); StringBuffer append = stringBuffer4.append(str); //StringBuffer-->String //1 使用toString()方法 String str1 = stringBuffer3.toString(); //2 使用构造器直接new String s2 =new String(stringBuffer4); } }
常用方法
package com.edu.string; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { //增 StringBuffer stringBuffer = new StringBuffer("hello"); stringBuffer.append("1"); stringBuffer.append("11").append("12"); //System.out.println(stringBuffer); //删 删除索引下标11到13的字符[1,3); stringBuffer.delete(1,3); //改 修改索引为[0,2)的字符,替换为周芷若 stringBuffer.replace(0,2,"周芷若"); //查找 int index = stringBuffer.indexOf("hello"); //插入 指定索引插入字符串,原来索引为9的位置自动后移 stringBuffer.insert(9,"周志强"); //123564,59-->123,564,59 小数点前每3位用,隔开 StringBuffer stringBuffer1 = new StringBuffer("13564,59"); System.out.println(stringBuffer1.indexOf(",")); for (int i=stringBuffer1.indexOf(",")-3;i>0;i-=3){ stringBuffer1.insert(i,","); } System.out.println(stringBuffer1); /* 老师的步骤 1、定义一个Scanner对象,接收用户的输入(String) 2、转换为StringBuffer对象 3、处理 */ Scanner scanner = new Scanner(System.in); String str = scanner.next(); StringBuffer stringBuffer2 = new StringBuffer(str); for (int i=stringBuffer2.indexOf(".")-3;i>0;i-=3){ stringBuffer2.insert(i,"."); } System.out.println(stringBuffer2); scanner.close(); } }
线程不安全
package com.edu.string;
public class Demo04 {
public static void main(String[] args) {
String name = "jack";
String pwd = "123456";
String email = "[email protected]";
try {
userRegister(name,pwd,email);
System.out.println("注册成功");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void userRegister(String name,String pwd,String email){
int nameLength = name.length();
if(!(nameLength >= 2 && nameLength <= 4)){
throw new RuntimeException("用户名长度异常");
}
if(!(pwd.length() == 6 && isNumber(pwd))){
throw new RuntimeException("密码格式错误");
}
int i = email.indexOf('@');
int j = email.indexOf('.');
if(!(i > -1 && j > i)){
throw new RuntimeException("邮箱错误");
}
}
public static boolean isNumber(String pwd){
char[] chars = pwd.toCharArray();
for (char i:chars){
if(!(Character.isDigit(i))){ //char[i]<'0'||char[i]>'9'
return false;
}
}
return true;
}
}
package com.edu.string;
public class Demo05 {
public static void main(String[] args) {
StringBuilder str = newName("Han shun Ping");
System.out.println(str);
printName("Han shun Ping");
}
public static StringBuilder newName (String name){
String[] nameArrays = name.split(" ");
StringBuilder str = new StringBuilder();
str.append(nameArrays[2]);
str.append(',');
str.append(nameArrays[0]);
str.append('.');
String temp = nameArrays[1];
str.append(temp.substring(0,1).toUpperCase());
return str;
}
//别的方法
public static void printName(String str){
if(str==null){
System.out.println("不能为空");
return;
}
String[] names = str.split(" ");
String info = String.format("%s,%s.%s",names[2],names[0],names[1].substring(0,1).toUpperCase());
System.out.println(info);
}
}