java之string类用法详解

🌈🌈😄😄

欢迎来到茶色岛独家岛屿,本期将为大家揭晓String 类,做好准备了么,那么开始吧

🌲🌲🐴🐴

文章目录

前言

一、String类是什么?

二、相应实例

三、String类方法

四、String与基本数据类型、包装类转换

五、字符数组与字符串

总结


前言

 本篇将介绍String 类的一些基础知识及应用实例
 


一、String类是什么?

  1. String 类 :代表字符串。
  2. Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
  3. String是一个final类,代表不可变的字符序列。
  4.  字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。
  5. String对象的字符内容是存储在一个字符数组value[ ]中的。

二、相应实例

1.String str1 = “abc”; 与String str2 = new String(“abc”);的区别?

字符串常量存储在字符串常量池,目的是共享
字符串非常量对象存储在堆中。 

如下图:

图1 

2.比较四种String对象

String s1 = "javaEE";
String s2 = "javaEE";
String s3 = new String("javaEE");
String s4 = new String("javaEE");
System.out.println(s1 == s2);//true
System.out.println(s1 == s3);//false
System.out.println(s1 == s4);//false
System.out.println(s3 == s4);//false

如下图2:

 

图2 

summary:

  • 常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。

  • 只要其中有一个是变量,结果就在堆中。

  • 如果拼接的结果调用intern()方法,返回值就在常量池中。

3. 比较person对象

Person p1 = new Person("Tom",12);
Person p2 = new Person("Tom",12);
System.out.println(p1.name == p2.name);//true

如下图:

图3 

4.详细介绍

若上述示例还想再巩固一下,可以看看下面例子哦

  • String s1 = "a";

说明:在字符串常量池中创建了一个字面量为"a"的字符串。

  • s1 = s1 + "b";

说明:实际上原来的“a”字符串对象已经丢弃了,现在在堆空间中产生了一个字符

串s1+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本

字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响

程序的性能。

  • String s2 = "ab";

说明:直接在字符串常量池中创建一个字面量为"ab"的字符串。

  • String s3 = "a" + "b";

说明:s3指向字符串常量池中已经创建的"ab"的字符串。

  • String s4 = s1.intern();

说明:堆空间的s1对象在调用intern()之后,会将常量池中已经存在的"ab"字符串

赋值给s4。

三、String类方法

1.replaceAll  替换字符串中的数字

 String str = "12hello34world5java7891mysql456";
//把字符串中的数字替换成,,如果结果中开头和结尾有,的话去掉
String string = str.replaceAll("\\d+", ",").replaceAll("^,|,$", "");
System.out.println(string);

2.matches   判断是否与str字符串匹配

String str = "12345";
//判断str字符串中是否全部有数字组成,即有1-n个数字组成
boolean matches = str.matches("\\d+");
System.out.println(matches);
String tel = "0571-4534289";
//判断这是否是一个杭州的固定电话
boolean result = tel.matches("0571-\\d{7,8}");
System.out.println(result);

3.split  将字符串根据指定的间隔进行切割

String str = "hello|world|java";
String[] strs = str.split("\\|");
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
System.out.println();
String str2 = "hello.world.java";
String[] strs2 = str2.split("\\.");
for (int i = 0; i < strs2.length; i++) {
System.out.println(strs2[i]);
}

四、String与基本数据类型、包装类转换

  • Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。
  • 类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型。
  • 调用String类的public String valueOf(int n)可将int型转换为字符串
  • 相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(double
    d)、valueOf(boolean b)可由参数的相应类型到字符串的转换

五、字符数组与字符串

  • String 类的构造器:String(char[ ]) 和 和 String(char[ ] ,int offset ,int length) 分别用字符数组中的全部字符部分字符创建字符串对象。
  • public char[ ] toCharArray(): :将字符串中的全部字符存放在一个字符数组
    中的方法。
  • public void getChars(int srcBegin, int srcEnd, char[ ] dst,
    int dstBegin): :提供了将指定索引范围内的字符串存放到数组中的方法。
  • String(byte[ ]) :通过使用平台的默认字符集解码指定的 byte 数组,构
    造一个新的 String。
  • String(byte[ ] ,int offset ,int length) : :用指定的字节数组的一部分,
    即从数组起始位置offset开始取length个字节构造一个字符串对象
  • public byte[ ] getBytes() :使用平台的默认字符集将此 String 编码为
    byte 序列,并将结果存储到一个新的 byte 数组中。
  • public byte[ ] getBytes(String charsetName) : :使用指定的字符集
    此 String 编码到 byte 序列,并将结果存储到新的 byte 数组


总结

以上就是今天要讲的内容,本文仅仅简单介绍了String类的使用,并进行实例说明,希望本篇可以收获大家的喜爱,同时也感谢大家的关注,后期我一定再接再厉。🐴🐴🐴🐴

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶色岛^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值