(七)JAVA基础学习第七篇章——JAVA字符串

Java中的字符串
java中的字符串是由双引号括起来的多个字符。
Java SE提供了三个字符串类:String、StringBuffer和StringBuilder。String是不可变字符串,StringBuffer和StringBuilder是可变字符串。
注意:单个字符如果双引号括起来则其表示的是字符串,而不是字符了。字符串还有一个极端的情况,就是双引号中没有任何内容表示空字符串,空字符串不是null,空字符串是分配了内存空间,而null是没有分配任何内存空间的。

不可变字符串

String
java中的不可变字符串是String,属于java.lang包。
提示:java.lang包中提供了很多java基础类,包括Object、Class、String和Math等基本类。在使用java.lang包中的类是不需要引入(import)该包,因为它是由解释器自动引入的。当然,引入java.lang包程序也不会有编译错误。
创建字符串对象示例代码如下:
在这里插入图片描述
在这里插入图片描述
字符串池
在这里插入图片描述
使用new关键字与字符串常量都能获得字符串对象,但他们之间有一些区别。
在这里插入图片描述
java中的不可变字符串String常量采用的是字符串池(String Pool)管理技术,字符串池是一种字符串驻留技术。采用字符串常量赋值时,会在字符串池中查找“Hello”字符串常量,如果已经存在,则把引用赋值给s9,否则创建“Hello”字符串对象,并放到池中。根据此原理,可以推定s10与s9是相同的引用,指向同一个对象。但此原理并不适用于new所创建的字符串对象,s7会创建“Hello”字符串对象,而它并没有放到字符串池中;s8又创建一个新的“Hello”字符串对象,所以s7和s8是不同的引用,指向不同的对象。
在这里插入图片描述
字符串拼接
String字符串虽然是不可变字符串,但也可以进行拼接,只是会产生一个新的对象。String字符串拼接可以使用+运算或concat方法。+运算的优势是可以连接任何类型数据拼接成为字符串,而concat方法只能拼接String类型字符串。
在这里插入图片描述
字符串查找

  • int indexOf(int ch):从前往后搜索字符ch,返回第一次找到字符ch所在处的索引。

  • int indexOf(int ch,int fromIndex):从指定的索引开始从前往后搜索字符ch,返回第一次找到字符ch所在处的索引。

  • int lastIndexOf(int ch):从后往前搜索字符ch,返回第一次找到字符ch所在处的索引。

  • int lastIndexOf(int ch,int fromIdex):从指定的索引开始从后往前搜索字符ch,返回第一次找到字符ch所在处的索引。
    提示:字符串本质上是字符数组,因此它也有索引,索引从0开始。返回值如果为-1表示没有找到。String的charAt(int index)方法可以返回索引index所在处的字符。
    字符串比较
    1.比较相等

  • boolean equals(Object anObject):比较两个字符串中内容是否相等。

  • boolean equalsIgnoreCase(String anotherString):类似equals方法,只是忽略大小写。
    例如:s1.equals(s2);
    2.比较大小

  • int compareTo(String anotherString):按字典顺序比较两个字符串。如果参数字符串等于此字符,则返回值0;如果此字符串小于参数字符串,则返回一个小于0的值;如果此字符串大于参数字符串,则返回一个大于0的值。

  • int compareToIgnoreCase(String str):类似于compareTo,只是忽略大小写。
    例如:s1.compareTo(s2);
    3.比较前缀和后缀

  • boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束。

  • boolean startsWith(String prefix):测试此字符串是否以指定的前缀结束。
    字符串截取

  • String substring(int beginIndex):从指定索引beginIndex开始截取一直到字符串结束的子字符串。

  • String substring(int beginIndex,int endIndex):从指定索引beginIndex开始截取直到索引endIndex-1处的字符。
    另外,String还提供了字符串分隔方法,split(“”)方法。例如:
    String sourceStr = “There is a string accessing example.”;
    String[] array = sourceStr.split(" ");
    for(String str:array){
    System.out.printlin(str);
    }

可变字符串

可变字符串在追加、删除、修改、插入和拼接等操作过程中不会产生新的对象。java提供了两个不可变字符串类StringBuffer和StringBuilder,中文翻译为“字符串缓冲区”。

  • 获得字符串长度:length()方法。
  • 获得字符串缓冲区容量:capacity()方法。
  • 字符串追加:append()方法。
  • 字符串插入:insert(int offset,String str)方法:在字符串缓冲区中索引为offset的字符位置之前插入str。
  • 字符串删除:delete(int start,int end)方法:从指定索引start开始直到end-1处删除字符。
  • 字符串替换:replace(int start,int end,String str)方法:在字符串缓冲区中用str替换子字符串,子字符串从指定索引start开始直到索引end-1处的字符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值