public class Main {
public static void main1(String[] args) {
//赋值方法
//1.
String a = "abcd";//直接赋值
//2.
String b = new String("abcde");//通过构造方法
//3.
char[] arr = {'a','b','c','e'};
String c = new String(arr);//通过字符数组来构造字符串
System.out.println(a);
System.out.println(b);
System.out.println(c);
//String中的两个成员变量一个value一个hash
//value是数组,存放的是
System.out.println(a.length());
String d = null;
String e = "";
System.out.println(e.isEmpty());//通过isEmpty()判断e是不是没有字符
System.out.println(a.isEmpty());
}
public static void main2(String[] args) {
//==判断
String a = "abcd";
String b = "abcd";
String c = new String("abcde");
String d = new String("abcde");
System.out.println(a.equals(b));
System.out.println(a==b);//直接赋值的时候,会存在一个字符串常量池中,再次定义一个相同的时候,会先检查常量池中有没有,如果有就指向原来的对象就行了
System.out.println(c==d);//默认是比较地址
System.out.println(c.equals(d));
//忽略大小写进行比较
String e = "ABCD";
System.out.println(e.equalsIgnoreCase(a));
}
public static void main3(String[] args) {
String a = "abcd";
String b = "def" ;
String c = "abcde" ;
String d = "abcder" ;
System.out.println(a.compareTo(b));//比较字符串的大小
System.out.println(a.compareTo(c));
System.out.println(a.compareTo(d));//若前面的字符都相同则当前对象比传入对象长度长几就是几
}
public static void main4(String[] args) {
String a = "abcd";
System.out.println(a.charAt(2));//获取下标为2的字符
int index = a.indexOf('a');//通过该方法获取字符a的下标
System.out.println(a.indexOf('a'));
System.out.println(index);
int index1 = a.indexOf('a',2);//从下标为2的位置开始找
System.out.println(index1);
System.out.println(a.indexOf("bc"));//查找bc返回b的下标
String b = "abcdacd";
System.out.println(b.lastIndexOf('a'));//代表从后往前找
System.out.println(b.lastIndexOf('a', 2));//从下标为2的位置从后往前找
}
public static void main5(String[] args) {
String a = String.valueOf(1234);
int b = 1234;
System.out.println(a.equals(b));//将其他类型转为String类型
a += 1;
b += 1;
System.out.println(a+","+b);
int c = Integer.parseInt(a);//将a转化为int类型
System.out.println(c+1);
String d = "ABCD";
String a1 = "abcd";
System.out.println(a1.toUpperCase(Locale.ROOT));//小写转大写
System.out.println(d.toLowerCase(Locale.ROOT));//大写转小写
System.out.println(a1);//大小写的转换不是在原字符串本身进行修改
}
public static void main6(String[] args) {
String a = "abcd";
char[] arr = a.toCharArray();//将字符串转换成字符数组
System.out.println(Arrays.toString(arr));
String b =new String(arr);//数组转字符串
System.out.println(b);
}
public static void main7(String[] args) {
String a = "abcd";
System.out.println(a.replace('a', 'l'));//字符替换将a换成l
System.out.println(a.replace("ab", "kkk"));;//字符串替换
String b = "abababcder";
System.out.println(b.replaceFirst("ab", "kkkk"));//将第一个ab替换掉
System.out.println(a.replaceAll("a", "ppp"));//字符串替换不过与上面一个传入参数类型不同
}
public static void main8(String[] args) {
String a = "abc&def&hij";
String[] str = a.split("&");
System.out.println(Arrays.toString(str));//以&分割
String[] str1 = a.split("&",2);//最多分为两组
System.out.println(Arrays.toString(str1));
//特殊分割
//split分割是根据正则表达式进行分割,部分符号需要\进行转译
String b = "abc.def.hij";
String[] str3 = b.split("\\.");
System.out.println(Arrays.toString(str3));
}
public static void main(String[] args) {
String a = "abcd";
System.out.println(a.substring(2));//从指定下标开始截取
System.out.println(a.substring(1, 2));//从指定下标开始截取到指定位置,左闭右开
String b = " a bcd e ";
System.out.println(b.trim());//去掉左右两边的空格
}
}