java--string

it2022-05-28  70

【非常详细的介绍了string的用法http://blog.csdn.net/zhangerqing/article/details/8093919】

String &  SringBuffer

String 适用于字符串常量,一经创建则不能修改,StringBuffer适用于需要做许多操作的字符串。

【字符串的信息的获取】

1.length()

2.startsWith(str); & endsWith(str)

3.字符串的查找

  查找字符串第一次出现的位置

    indexOf(str);

public class Demo{ public static void main(String[] args) { String string = "this is a string ,start with this."; // boolean res = string.startsWith("this"); // System.out.println(res); // int index = string.indexOf("a"); System.out.println(index); } }

  查找最后一次出现的位置

   lastIndexOf(str);

public class Demo{ public static void main(String[] args) { String string = "this is a string ,start with this."; // boolean res = string.startsWith("this"); // System.out.println(res); int index = string.lastIndexOf("a"); System.out.println(index); } }

4.字符串的比较   是否相等 str1.equals(str2)   str1.compareTo(str2)  str1.equalsIgnoreCase(str2)

5.字符串的连接

   concat()

 

 【再此强调字符串的不变性】

通过一段代码说明问题:

package Test; public class Demo2{ public static void main(String[] args) { String string = "abc"; string+="efg"; System.out.println(string); } }

 

输出结果为:abcefg

在这个过程中创建了几个对象呢?太简单了,一个!呵呵,错了,两个!

当String = "abc"的时候,已经创建了一个对象,

string+="efg";

系统会抛弃原来的对象,重新开辟一段内存空间,string = “abcefg”;原来的对象空间将会被GC回收。

 

在定义一个string对象的时候,会先在string常量池中查找是不是已经存在要创建的对象,如果已经存在了,就直接将常量池中的对象的地址直接赋值给要创建的string引用;如果不存在,才会在重新创建。

package Test; public class Demo2{ public static void main(String[] args) { // String string = "abc"; // string+="efg"; // System.out.println(string); String str1 = "java"; String str2 = "blog"; String str3 = str1+str2; System.out.println(str3 == "javablog"); } }

结果:false== 判断的是地址是不是相等。

equals 比较的是对象的内容。

 

 

转载于:https://www.cnblogs.com/plxx/p/3344493.html


最新回复(0)