String的两种声明方式
/*
* String 的两种声明方式
*/
package com.y.tr;
public class Demo1 {
public static void main(String[] args) {
//一
String string = "狗蛋";
System.out.println(string);
//二
String string2 = new String("goudan");
System.out.println(string2);
}
}
两个字符串比较
/**
* 两个字符串比较
*/
package com.y.tr;
public class Demo2 {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");
//==比较的是内存地址;
System.out.println(str1 == str2);
System.out.println(str1 == str3);//new 出来的对象,内存地址不一样
System.out.println(str3 == str4);//new 出来的两个对象, 内存地址也不一样
}
}
String 类下面的方法
获取字符串长度 int length();
获取特定位置的字符 char charAt(int index);
获取特定字符的下标 int indexOf(String str);
获取特定字符的最后一次出现的位置的下标 int lastIndexOf(int ch);
/*
* String类下面的方法
*/
package com.y.tr;
public class Demo3 {
public static void main(String[] args) {
String str1 = "fwqfeg";
System.out.println(str1.length());//输出数组长度
int a1 = str1.length();
System.out.println(a1);
String str2 = "fwhrehghhr5";
System.out.println(str2.charAt(4));//获取特定位置的字符
char a2 = str2.charAt(6);
System.out.println(a2);
String str3 = "huwgbjois";//获取特定字符下标
System.out.println(str3.indexOf(98));
int a3 = str3.indexOf("u");
System.out.println(a3);
String str4 = "fesghgtgf";//获取特定字符的最后的一个位置
System.out.println(str4.lastIndexOf("f"));
int a4 = str4.lastIndexOf("g");
System.out.println(a4);
}
}
boolean endWith(String str); 是否以指定的字符或者字符串结尾
boolean isEmpty();判断是否为空,如果字符串为空就 true
boolean contains(); 判断是否包含子字符串
boolean equals(Object anOnject); 判断两个字符串是否相等
boolean equalsIgoreCase(Object anObject); 忽略大小写判断两个字符串是否相等
package com.y.tr;
public class Demo4 {
public static void main(String[] args) {
//判断是否以指定字符结尾
String str1 = "gdajlsfg";
System.out.println(str1.endsWith("f"));//false
//判断是否为空
String str2 = "fdfeghfg";
System.out.println(str2.isEmpty());//false不为空
//判断是否包含子字符串
String str3 = "feijnfvdfd";
System.out.println(str3.contains("fei"));//true
}
}
将字符数组转为字符串
直接可以使用STring类的构造方法
String(char[] value)
String(char[] value, int offset, int count)
static String valueOf(char[] chs);
将字符串转为字符数组
char[] toCharArray(); "字符串".toCharArray();
package com.y.tr;
public class Demo5 {
public static void main(String[] args) {
char [] str1 = {'a','g','f','b'};
String str2 = new String(str1);
System.out.println(str2);
//String(char []value,int offset,int count);
//第二个参数 offset偏移量
//第三个参数count数量
String str3 = new String(str1,2,2);
System.out.println(str3);
String str4 = String.valueOf(str1);
System.out.println(str4);//String.valueOf(str1)方法,类.方法(参数)
//将字符串转为字符,字符串.toCharArray();
char [] ch = "张开放大帅逼".toCharArray();
for (int i = 0; i < ch.length; i++) {
System.out.println(ch[i]);
}
}
}
以下是几个比较重要的方法
String replace(char oldChar, char newChar); 字符在字符串中替换
String [] split(String regex); 以 regex 对当前的字符串进行切割
String subString(int beginIndex); 截取字符串一部分
String subString(int beginIndex, int endIndex); 截取字符串一部分
String toUpperCase();将小写字母转为大写的字母
String toLowerCase();将大写转为小写字母
String trim(); 去除左右空格
为啥要使用泛型
广泛的类型
在开发中对数据一致性的要求是比较高的
例如:
数组中存数据 都是同一个类型的
int[] arr = new int[]
char[] arr = new char[]
自定义泛型
语法格式
public <无意义的占位符> 返回值的类型 方法的名字(参数){
}
无意义的占位符:可以任意的字符 但是都大写的 开发中一般是 T (Type) E (Element) ?(未知)
无参无返回值
有参无返回值
无参有返回值
有参有返回值
泛型类【重点】
语法格式:
class 类名 <无意义的占位符> {
}
泛型接口
语法格式
interface 接口名字 <无意义的占位符> {
}