String类

String类
描述

String 类描述的是文本字符序列,同时 String 类被 final 关键字所修饰,意味着 String 类不能够继承,而且它的成员方法默认是 final 方法,所以当字符串一旦被创建就无法被修改。

String str1 = "小明";
String str2 = new String("小明")

比较这两条语句:
第一条

第一条语句会检查字符串常量池中是否存有“小明“这个字符串对象,如果有
则返回这个字符串的内存地址,如果没有则会在字符串常量池中创建这个对
象。

第二条语句

第二条语句同样也会检查字符串常量池中是否存有“小明“这个字符串对象,
如果有则返回这个字符串的内存地址,如果没有则会在字符串常量池中创
建这个对象,但再创建之后 new String 又会在内存的堆区创建 str2 对
象,过程一共创建两个对象。

所以为了节省内存,般使用第一种

String中的一些方法及部分演示
字符串中的获取方法用途
int length获取字符串长度
cahr charAt(int index)获取特定位置的字符串
int index(String sstr)获取特定字符的位置
int lastIndexOf(int ch)获取最后一个字符的位置
字符串中的判断方法作用
boolean endWith(String str)是否以指定字符结尾
boolean isEmpty()判断是否为空
boolean contains(CharSequence s)是否包含指定序列
boolean equals(Object object)判断是否相等
boolean equalsIgnoreCase(String str)忽略大小写是否相等
字符串中的转换方法作用
String(char[] value)将字符数组转换为字符串(初始化)
String(char[] value, int offset, int count)将字符数组的一部分转化成字符串(初始化)
static String valueOf(char[] data)将字符数组转换为字符串
static String valueOf(char[] data, int offset, int count)将字符数组的一部分转化成字符串
char[] toCharArray()将字符串转化为数组
char[] cha = {'a','b','c','d'};
String str = new String(cha, 2, 1);
System.out.println(str);  //输出结果为 c
char[] cha = {'a','b','c','d'};
System.out.println(String.valueOf(cha, 1, 2));  //输出的结果为 bc 。
字符串的其他方法作用
String replace(char oldChar, char newChar)替换
String[] split(String regex)切割
String substring(int beginIndex)从指定位置截取剩余字符串
String substring(int beginIndex, int endIndex)截取指定头尾的字符串
String toUpperCase()转大写
String toLowerCase()转小写
String trim()去空格
//分割的演示
String str ="abc,defg";
String[] strS = str.split(",");
for (String s : strS) {
	System.out.println(s);
}
/*
*	结果 abc
*	    defg
*/
常量池

文章的开头提到了字符串常量池,java中的常量池可以分为两种:

1. 静态常量池
2. 运行时常量池

所谓的静态常量池就是 *.class文件的常量池
运行时常量池 就是在 class 文件加载到内存之后,常量池保存在方法区(其中存了一些常量、静态变量、类信息等)中,通常说的常量池指的是运行时常量池。
常量池可以避免频繁的创建和销毁对象,有利于实现共享。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值