java基础-String/StringBuffer/StringBuilder

一.String

1.String类是不可变的。

例如:

String s = "Google";
System.out.println("s = " + s);

s = "Runoob";
System.out.println("s = " + s);

输出结果为:

Google
Runoob

于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = “Runoob”; 创建了一个新的对象 “Runoob”,而原来的 “Google” 还存在于内存中。
这里写图片描述

2.常用的方法

使用如:str.charAt(8);
char charAt(int index):返回字符串索引出的值,索引范围为从 0 到 length() - 1。
String concat(String str1):把一个字符串连接到另一个字符串的末尾
int length():返回字符串长度
int indexOf(int ch)/int indexOf(String str):返回指定字符/字符串在此字符串中第一次出现处的索引。不存在则返回-1
int indexOf(int ch, int fromIndex): 返回指定字符在字符串中第一次出现处的索引,fromIndex为开始搜索的索引位置。
int lastIndexOf(ch): 返回指定字符在此字符串中最后一次出现处的索引。
boolean matches(String regex):是否匹配正则表达式
String[] split(String regex):根据给定字符的匹配拆分此字符串。结果为数组。
char[] toCharArray():将此字符串转换为一个新的字符数组。
String trim(): 忽略前导空白和尾部空白。
static String valueOf(primitive data type x):返回给定data type类型x参数的字符串表示形式。
String replace(char oldChar, char newChar):通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replaceAll(String regex, String replacement):使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement):使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
boolean startsWith(String prefix, int toffset):是否以某一字符串开始,toffset字符串中开始查找的位置,不写的话默认0。
String substring(int beginIndex, int endIndex):截取字符串,beginIndex – 起始索引(包括)。
endIndex – 结束索引(不包括),不写的话默认到最后。
String toLowerCase()/ toUpperCase():转换成大小写

length()方法,length属性和size()的方法的区别:

1.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
2.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性;
3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

二.StringBuffer与StringBuilder

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

方法描述

1 public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
2 public StringBuffer reverse()
将此字符序列用其反转形式取代。
3 public delete(int start, int end)
移除此序列的子字符串中的字符。
4 public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。
5 replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。

三.String与Stringbuffer/StringBuilder的比较:

String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的
concat 方法,那也是把字符串拼接起来并重新创建一个对象,把拼接后的 String 的值赋给新创建的对象,而 StringBuffer 的长度是可变的,调用StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化,是非常耗费内存的!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值