一.适配器设计模式
1.类适配器
让没有关系的类和接口产生联系,可以扩展功能,增加已有代码的复用性
3.缺省适配器
注意:字符串 是常量 字符串常量
修改的是字符串引用(地址),指向不同的地址 ,而不是字符串自身被修改。
String s2 = "abcd";//在方法区的常量池创建一个字符串
String s3 = new String("abcd");//相当于是在堆内存中开辟一块空间
== 号 对象的话 比的是地址而 equals 把两个字符串变成字符数组,一位一位地进行比较
三.一些String中的方法
1.获取
根据索引获取字符串中字符
char charAt(int index)
根据字符获取在字符串中的位置
整数和字符可以相互转换 ackii码表
int indexOf(int ch)
9.字符串拼接
1.类适配器
让没有关系的类和接口产生联系,可以扩展功能,增加已有代码的复用性
public class Demo01 { public static void main(String[] args) { Target iphone6 = new IPhone6(); iphone6.connection(); //使用适配器的类 Target iphone7 = new Adapter(); iphone7.connection(); } } class IPhone7{ //听音乐方法 public void listenMusic() { System.out.println("直接使用充电口听"); } } interface Target{ //耳机连接的抽象方法 public abstract void connection(); } class IPhone6 implements Target{ @Override public void connection() { System.out.println("使用3.5mm听"); } } //使用继承 让类和接口产生联系 //使用一个适配器类(第三方的类)通过这个类 //类与接口产生联系 提高接口兼容性 class Adapter extends IPhone7 implements Target{ @Override public void connection() { // 实现抽象方法 System.out.println("使用转接头"); super.listenMusic(); } }2.对象适配器
3.缺省适配器
//健身房 interface JSF{ public abstract void run(); public abstract void woTui(); public abstract void yaLing(); } //使用一个类作为桥梁 来连接接口与类 //让适配器类来实现接口 空实现 //适配器类 只是对接口方法的空实现 //不希望这个适配器类 直接被使用 abstract class MyAdapter implements JSF{ @Override public void run() { } @Override public void woTui() { } @Override public void yaLing() { } } //这时就可以直接继承适配器类 class WL extends MyAdapter{ //重写适配器类的方法 @Override public void run() { } }二.String类
注意:字符串 是常量 字符串常量
修改的是字符串引用(地址),指向不同的地址 ,而不是字符串自身被修改。
String s2 = "abcd";//在方法区的常量池创建一个字符串
String s3 = new String("abcd");//相当于是在堆内存中开辟一块空间
== 号 对象的话 比的是地址而 equals 把两个字符串变成字符数组,一位一位地进行比较
三.一些String中的方法
1.获取
根据索引获取字符串中字符
char charAt(int index)
根据字符获取在字符串中的位置
整数和字符可以相互转换 ackii码表
int indexOf(int ch)
//获取索引 String s1 = "wwwlooog"; int index = s1.indexOf('g'); System.out.println(index); //从传入的索引这一位开始查找 int index1 = s1.indexOf('g', 3); System.out.println(index1); //传入字符串 查找对应的角标 int index2 = s1.indexOf("lo");2.判断 返回值都是布尔类型
String string = "wwwlooog"; //判断包含 boolean rel1 = string.contains("wl"); System.out.println(rel1); //判断前缀 boolean startsWith = string.startsWith("www"); //判断后缀 boolean rel3 = string.endsWith("oog"); //判断两个字符串相等 boolean rel4 = string.equals("haha"); //判断两个字符串忽略大小写相等 boolean rel5 = string.equalsIgnoreCase("wwwlooog"); //字符串转小写 String s1 = string.toLowerCase(); //字符串转大写 String s2 = string.toUpperCase();3.替换
String string = "wanglong"; String s1 = string.replace('w', 'l'); System.out.println(s1); String s2 = string.replace("long", "ba"); System.out.println(s2);4.字符串分割
//字符串分割 返回值是数组 String[] String string = "wanglong,pengqian,liushangkun"; //使用转义字符 String[] split = string.split("\\."); System.out.println(Arrays.toString(split)); //增强for循环(专门用来遍历) for(String s:split) { //String s 相当于表示容器中每一个元素 System.out.println(s);5.截取字符串
//获取子字符串 String string = "wanglong"; //从传入的索引这一位开始截取 String s1 = string.substring(3); System.out.println(s1); //[0,3)留头不留尾 String s2 = string.substring(0, 3);6.去空格
String string = " abc def "; String s1 = string.trim(); System.out.println(s1);7.字符串比较
String string2 = "abcAB"; String string3 = "abcAb"; //相等返回0 //返回正数 前面大 //返回负数 前面小 //字符串不一样的时候 按ackii表返回两个字符差值 //长度不一样,返回的是位数的差值 //一位一位进行比较 字符不一样 就做差值 int num = string2.compareTo(string3); System.out.println(num);8.字符串与数组相互转化
//把字符数组转换字符串 char[] array = {'w','a','n','g'}; //使用构造方法转化 String string = new String(array); System.out.println(string); //把字符串转化字符数组 String s1 = "wanglong"; char[] charArray = s1.toCharArray();
9.字符串拼接
String s1 = "wang"; String s2 = "long"; String s3 = s1.concat(s2);10.判断字符串是否为空
String string = ""; boolean rel = string.isEmpty();11.基本数据类型转换字符串
String string = String.valueOf(10);