ShineYoung

导航

 

最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时C语言做的,对Java字符串操作不太了解,所以深入了解一下String类的相关用法

String构造方法

String() 空构造
String(byte[] bytes) 把字节数组转成字符串
String(byte[] bytes,int index,int length) 把字节数组的一部分转成字符串
String(char[] value) 把字符数组转成字符串
String(char[] value,int index,int count) 把字符数组的一部分转成字符串
String(String original) 把字符串常量值转成字符串

////////////////////////////////////////////

String这时候会有一个值传递和引用传递的问题

String a = "abc"

String b = new String("abc")

String c = "abc"

a=c  a,c都是"abc"的引用

a!=b b是一个新的String类的引用

/////////////////////////////////////////////// 

String常用方法

length()  最常用的方法,返回String长度

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  

(srcBegin -- 字符串中要复制的第一个字符的索引。

srcEnd -- 字符串中要复制的最后一个字符之后的索引。

dst -- 目标数组。

dstBegin -- 目标数组中的起始偏移量。)

 

public cha[] toCharArry()  返回String转换的char[]

 

public char charAt(int index)  注意返回的是char类型

 

public int indexOf(int ch)  返回字符第一次出现的位置,没有-1

 

public int indexOf(String str)

 

public int lastIndexOf(int ch)  返回字符最后一次出现的位置,没有-1

 

public int lastIndexOf(String str)

 

public String[] split(String regex) 返回分割后的String[] 比如把"a,b,c"分割为["a","b","c"]

 

public String toLowerCase() 返回全是小写的字符串

 

public String toUpperCase() 返回全是大写的字符串

 

public String substring(int beginIndex) 返回从开始索引的字符子串

 

public String substring(int beginIndex, int endIndex) 返回从开始索引到结束索引的字符子串

 

String 是不可变类

StringBuffer StringBuilder都是可以改变的

(内部其实是char[],添加元素前会有一个扩容操作,创建一个更大的char[],然后复制进去)

append() 添加字符串

delete()

StringBuffer 线程安全  StringBuilder线程不安全

 

posted on 2019-03-06 14:07  ShineYoung  阅读(155)  评论(0编辑  收藏  举报