package com.Lucky.OftenClass;
import java.util.Arrays;
/*
String是不可变字符串序列,所谓的String的方法都是新增一个String
拓展:JDK9时,将String底层的char数组变成了 byte 数组,节省空间
同时通过一个coder成员变量作为编码格式的标识latin1==>0还是UTF-16==>1
*/
public class StringClass {
public static void main(String[] args) {
//创建字符串
String str1="唯易人生Lucky";
//调用String类的诸多方法
System.out.println("----------String类常用的诸多方法--------------");
System.out.println(str1.toLowerCase()); //转换成小写
System.out.println(str1.toUpperCase()); //转换成大写
System.out.println(str1.length()); //字符的个数
System.out.println(str1.isEmpty()); //是否为空
System.out.println(str1.startsWith("唯易")); //是否是唯易开头
System.out.println(str1.endsWith("y")); //是否是y结尾
System.out.println("----------substring:截取--------------");
System.out.println(str1.charAt(4)); //返回索引为4的L
// System.out.println(str1.charAt(20)); //StringIndexOutOfBoundsException:字符下标越界
System.out.println(str1.substring(4)); //从索引为4开截取字符串
System.out.println(str1.substring(0,4)); //从索引为0到4 截取字符串
System.out.println("----------索引相关--------------");
System.out.println(str1.indexOf("Lu")); //返回一开始出现Lu字符的索引
System.out.println(str1.indexOf("Lu",6)); //在索引为6开始往下找,如果没有就返回-1
System.out.println(str1.lastIndexOf("易")); //从最后开始往前进行索引【结果索引还是从前面开始】
System.out.println(str1.lastIndexOf("Lu",7)); //在索引为7开始往前找,如果没有就返回-1
//注意点:
// 返回结果的索引都是从前面开始找的
System.out.println("*--- //String其他方法-----*");
String str2="java,PHP,C#,javaScript,C++";
String str3="CHJHTREBFNDHTELJRSSERIES";
//返回的结果是一个数组 【java区分大小写】
System.out.println("----------split:分割字符串--------------");
System.out.println(Arrays.toString(str2.split(",")));//分割字符串,返回数组
System.out.println(Arrays.toString(str3.split("H"))); //提前将数组toString
System.out.println("----------replace:替换字符串--------------");
System.out.println(str3.replace("TE", "JAVA")); //将TE替换成JAVA
System.out.println(str3.replaceAll("R*E", "牛"));//将regex正则表达式使用替换
System.out.println("----------trim:去除两边空格--------------");
String str4=" dfvh dv vfg ";
System.out.println(str4.length());
System.out.println(str4.trim()); //去除两边的空格
String str5=str4.trim();
System.out.println(str5.length()); //length变短
System.out.println("----------toCharArray--------------");
/*
toCharArray :字符数组可以直接打印出来
*/
System.out.println(str4.toCharArray());
System.out.println("----------concat:合并【在最后最加字符串】--------------");
String str8="唯易人生";
String str9="YYDS";
String str10=str9.concat("是").concat(str8);
System.out.println(str8.concat(str9));
System.out.println(str10);
System.out.println("******** == 与 equals ****************");
////////////////////////////////////////== 与 equals////////////////////////////////////////
String One=new String("唯易人生");
String Two=new String("唯易人生");
System.out.println(One==Two); //false //对象不相等【在栈帧上面存的地址不一样】
System.out.println(One.equals(Two)); //true //值相等
String three="唯易人生";
String four="唯易人生";
System.out.println(three==four); //true //字符串相等
System.out.println(One.equals(Two)); //true
System.out.println(One==four); //false
System.out.println(One.equals(four)); //true
///拓展:
String ing1=null;
String ing2=" "; //一个空格
String ing3=new String("");
System.out.println(ing2.length());
System.out.println(ing2.equals(ing3)); //不等
System.out.println("*--------compareTo:相减【比大小】------------*");
String er1="WYRSYYDS";
String er2="WYRSYYDSNB";
String er3="123456";
String er4="199999";
System.out.println(er1.compareTo(er2));
System.out.println(er4.compareTo(er3)); //相同位置比较,然后再相减【不懂就看源码】
}
}