当前位置:   article > 正文

java中String类详解(java.lang.String)

java.lang.string

介绍:

1、String是finall类,不可以被继承,不可以被改变的字符串。

小提示:不可变的字符串对象,尽量少使用+=操作 ⭐ 

2、String表示字符串类型,属于 引用数据类型,不属于基本数据类型。

3、在java中随便使用 双引号括起来 的都是String对象。

      例如:“abc”,“你好”,“hello world!”,这是3个String对象。

4、在JDK当中双引号括起来的字符串,例如:“abc” "def"都是直接存储在“方法区”的“字符串常量池”当中的。

为什么SUN公司把字符串存储在一个“字符串常量池”当中呢?

因为字符串在实际的开发中使用太频繁。为了执行效率,所以把字符串放到了方法区的字符串常量池当中。

例1:

  1. public static void main(String[] args) {
  2. String s1="hello";
  3. s1+="world";
  4. String s2=new String();
  5. }

上图中,String s1+=之前指向地址为“0x666”,+=之后指向地址变成:"0x888'。也就是说,指向了两个不同对象,所以String类型尽量不要+=运算,因为每运算一次都会产生垃圾内存,并且垃圾回收器不会回收字符串常量池内的东西 。

另外:通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串值声明在字符串常量池中

总结1:String字符串具有不可变性,当字符串重新赋值时,不会在原来的内存地址进行修改,而是重新分配新的内存地址进行赋值。

2.当字符串进行拼接时,也不会在原来的内存地址进行修改,而是重新分配新的内存地址进行赋值。

常用方法:

方法名作用
1. length()统计字符个数
2. equals equalsIgnoreCase方法

equals是Object的方法,用来判断两个对象是否相同,在判断字符串时它判断的是两个对象的内容是否相同。

equalsIgnoreCase是String的判断方法,只能判断两个字符串。

3. trim方法去掉字符串收尾的空格
4. substring方法返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
5. concat()方法将几个字符串连接到一起
6. contains()用于判断字符串是否包含某个元素
7.int indexOf(String str)返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1
8. lastIndexOf()返回str最后一次出现的位置
9. replace()替换字符串
10. split()将字符串以regex分割     !分隔符会把字符串拆成若干个子字符串,然后生成一个String数组
11. toLowerCase() toUpperCase()

toLowerCase()字符串转小写

toUpperCase()字符串转大写

实例:

  1. public class Demo2 {
  2. public static void main(String[] args) {
  3. String s0="kshkjgksa";
  4. System.out.println(s0.length());//9 字符串长度
  5. String s1="a";
  6. String s2=new String("a");
  7. System.out.println(s1.equals(s2));//true 判断值知否相等
  8. System.out.println("HELLO".equalsIgnoreCase("hello"));//true 忽略大小写
  9. System.out.println(" hello ".trim());//hello 去掉字符串收尾的空格
  10. System.out.println("hello world".substring(3));//lo world 截取字符串
  11. System.out.println("hello world".substring(3,7));//lo w 截取字符串
  12. String s = "厉害了,";
  13. String str1 = "我的";
  14. String str2 = "国!";
  15. s = s.concat(str1);//将字符串str1接到字符串s后面
  16. s = s.concat(str2);//将字符串str1接到字符串s后面
  17. System.out.println(s);//厉害了,我的国!
  18. //判断
  19. String s3 = "hello world 中国人";
  20. System.out.println(s3.contains("hello"));//true
  21. String str = "01234567890123456789";
  22. System.out.println(str.indexOf("123"));//1
  23. System.out.println(str.indexOf("123",5));//11 //从第五位开始查找
  24. System.out.println(s3.lastIndexOf("hello"));//0
  25. System.out.println(s3.startsWith("hello"));//true
  26. System.out.println(s3.endsWith("国人"));//true
  27. String s4 ="1a2";
  28. String[] split = s4.split("a");
  29. //split:{"1","2"}
  30. for (int i = 0; i < split.length; i++) {
  31. System.out.println(split[i]);
  32. }
  33. //替换 hello java 中国人
  34. String s5 = "hello world 中国人";
  35. System.out.println(s5.replace("world","java"));//hello java 中国人
  36. System.out.println(s5.replace("world",""));//hello 中国人
  37. System.out.println("hellohellohello".replace("hello","ok"));//okokok
  38. }
  39. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/746993
推荐阅读
相关标签
  

闽ICP备14008679号