public class Test {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
//s1 s2 都是指向方法区字符串常量池中的“abc”
System.out.println(s1 == s2);//true
//分析下面两条代码创建了几个对象
//3个 s3 s4 "xyz"
String s3 = new String("xyz");
String s4 = new String("xyz");
//s1 s2 指向堆区中对象的地址,而该对象指向字符串常量池中的“xzy”
System.out.println(s3 == s4);//false
//String类重写了equals方法
System.out.println(s3.equals(s4));//true
//字节数组
byte[] bytes = {97,98,99,100};
//String中的重要构造方法
//全部转换成字符串
String s5 = new String(bytes);
System.out.println(s5);
//String(字节数据,元素下标起始位置,目标长度)
//将数组的一部分元素转换成字符串
//其他类型数组同理
String s6 = new String(bytes,1,3);
System.out.println(s6);
//String中常用的方法
//(掌握) public char charAt(int index)
//返回指定位置的元素
char c = "java".charAt(1);
System.out.println(c);
//(了解) public int compareTo(String anotherString)
//按字典顺序比较两个字符串
// 返回值类型为int
System.out.println("abc".compareTo("abc"));//0 前后一致
System.out.println("abcd".compareTo("abce"));//-1 前小后大
System.out.println("abce".compareTo("abcd"));//1 前大后小
System.out.println("abc".compareTo("abe"));//-2
//(掌握) public boolean contains(CharSequence s)
//判断前面的字符串是否包含后面的字符串
System.out.println("abcde".contains("bcd"));//true
//(掌握) public boolean endsWith(String suffix)
//判断当前字符串是否以某个字符串结尾
System.out.println("abcde".endsWith("de"));//true
//equals方法(掌握)
//(掌握) public boolean equalsIgnoreCase(String anotherString)
//比较两个字符串是否相等忽略大小写
System.out.println("aBc".equalsIgnoreCase("AbC"));//true
//(掌握) public byte[] getBytes()
//将字符串转换成byte数组
byte[] bytes1 = "abc".getBytes();
for (int i = 0; i < bytes1.length; i++) {
System.out.print(bytes1[i] + " ");//97 98 99
}
System.out.println();
//(掌握) public int indexOf(String str)
//判断某个子字符串在当前字符串中第一次出现处的索引
System.out.println("c++c#java".indexOf("java"));//5
//(掌握) public boolean isEmpty()
//判断某个字符串是否为空
System.out.println("".isEmpty());//true
System.out.println("aa".isEmpty());//false
//(掌握) public int length()
//面试题:判断数组长度和判断字符串长度不一样
//判断数组长度是length属性,判断字符串长度是length方法
System.out.println("abc".length());//3
System.out.println("".length());//0
//(掌握) public int lastIndexOf(String str)
//判断某个字符串在当前字符串中最后一次出现的索引
System.out.println("qwertyqwert".lastIndexOf("qw"));//6
//(掌握) public String replace(CharSequence target,CharSequence replacement)
//替换
System.out.println("projavt".replace("av","ec"));//project
//(掌握) public String[] split(String regex)
//拆分字符串
String[] strings = "2020-10-14".split("-");//以 - 分隔符进行拆分
for (int i = 0; i < strings.length; i++) {
System.out.println(strings[i]);//2020 10 14
}
//(掌握) public boolean startsWith(String prefix)
//判断当前字符串是否以某个字符串开始
System.out.println("abcde".startsWith("ab"));//true
//(掌握) public String substring(int beginIndex)
//截取字符串
System.out.println("abcde".substring(2));//cde
//(掌握) public String substring(int beginIndex, int endIndex)
//截取字符串
//beginIndex开始的下标,包括。
//endIndex的结束的下标,不包括
System.out.println("abcde".substring(2,4));//cd 左闭右开
//(掌握) public char[] toCharArray()
//将字符串转换成char数组
char[] chars = "abc".toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);//a b c
}
//(掌握) public String toLowerCase()
//转换成小写
System.out.println("ABC".toLowerCase());//abc
//(掌握) public String toUpperCase()
//转换成大写
System.out.println("abc".toUpperCase());//ABC
//(掌握) public String trim();
//去掉前后空白
System.out.println(" abe ".trim());//abe
//(掌握) public static String valueOf(将非字符串转换成字符串)
//String中只有这一个静态方法,不需要new对象去调用
String string = String.valueOf(1);
System.out.println(string);// 字符串1
//创建一个初始化容量为16的byte数组(字符串缓冲区对象)
//初始化时,预计一下初始容量
//关键点给一个合适的初始化容量,提高程序运行效率
StringBuffer stringBuffer = new StringBuffer();
//字符串拼接
stringBuffer.append("a");
stringBuffer.append("b");
stringBuffer.append("c");
stringBuffer.append(true);
stringBuffer.append(3.14);
System.out.println(stringBuffer);
//StringBuilder和StringBuffer的作用相同
//区别是StringBuilder是非线程安全的 StringBuffer是线程安全的
}
}
String类中的常用方法介绍,以及StringBuffer和StringBuilder进行字符串拼接
最新推荐文章于 2022-10-18 20:50:14 发布