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();