java String详解
String是什么
String是一个字符串,它是不可变的。
我知道的操作案例,可能会对你们有帮助,不喜勿喷!
String aaa=abcdef;
//打印下标为2的字符
System.out.println(aaa.charAt(2));
//包含 必须相连
System.out.println(aaa.contains(abc));
//以什么什么结束
System.out.println(aaa.endsWith(def));
//以什么开始
System.out.println(aaa.startsWith(abc));
//判断字符串内容是否相等
//== 判断的是地址,equals判断的是内容
System.out.println(aaa.equals(abcdef));
//不区分大小写
System.out.println(aaa.equalsIgnoreCase(abcdef));
//返回当前字符对应的索引
System.out.println(aaa.indexOf(b));
//判断字符串是否为空
System.out.println(aaa.isEmpty());
//长度
System.out.println(aaa.length());
//替换字符串中的内容
System.out.println(aaa.replace(a, c));
----------------------------------------------------------------------------------------------------------------------------------------
分割字符串 截取字符串
String names=tom,bb,cc; String aaa=abcdef; //包前不包后 String[] name =names.split(,); String ddd=aaa.substring(2,6); System.out.println(name[0]); System.out.println(ddd); System.out.println(name[1]); System.out.println(name[2]);
可能会遇到的面试题:
重点哦,理解,理解,理解!
String s1=new String(abc);
String s2=abc;
System.out.println(s1==s2); false
System.out.println(s1.equals(s2)); true
String s3=bbb;
String s4=bbb;
System.out.println(s3==s4); true
String s5=new String(ccc);
String s6=new String(ccc);
System.out.println(s5==s6); false
String s7=hello;
String s8=world;
String s9=helloworld;
System.out.println(s9==s7+s8); false
System.out.println(s9==hello+world); true
重点哦亲:
字符串如果是变量相加,先开空间,再拼接
字符串如果是常量相加,先拼接,然后再常量池找,如果有就直接返回,没有再创建
String,StringBuffer,StringBuilder的区别
String内容不可变,
后两个内容可变
StringBuffer是线程同步的,数据安全,效率低;
StringBuilder线程不同步,数据不安全,效率高。
StringBuffer,StringBuilder的构造方法是一样的,记住一个就好!!!!!!
---------------------------------------------用StringBuffer判断是否是回文字符串---------------------------------------
String s=abcdcba; StringBuilder sb=new StringBuilder(s); String aaa=sb.reverse().toString(); int bbb=aaa.compareTo(s); //若相等则输出0 if (bbb==0){ System.out.println(是回文); }else System.out.println(不是回文);
常见的方法,以后会经常用到
// 指定一个容量 字符串
StringBuffer buffer=new StringBuffer(sfsdg);
//在字符串后追加
buffer.append(bbb);
//反转
buffer.reverse();