黑马程序员-字符串

本文详细探讨了Java中String类的特点、构造函数、常用方法、字符串比较、转换、追加内容及缓冲区StringBuffer和StringBuilder的使用。深入理解String类对Java与Android开发具有重要意义。
摘要由CSDN通过智能技术生成
------- android培训java培训、期待与您交流! ----------

String类

定义方法:

String s = "abc";

String s = new String("abc");

特点: 字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中,但是上述的new在堆中也创建了一个对象abc

所以第二种方式是两个对象,而第一个只有一个对象


字符串中的equals有被复写过,所以比较的是内容


构造函数的比较

String s1 = new String();

String s2 = null;

String s3 = "";

new String(char[]);

new String(char[],offset,count);


String的常用方法

获取

经常用于遍历

获取字符串长度;length()

经常用于反转等对字符串进行的操作

指定位置的字符 char charAt(int index)

获取指定字符的位置,如果不存在返回-1,通过-1来判断字符是否存在

经常用于输出字符的次数可以用

int indexOf(int ch); 返回第一次找到的字符角标

int indexOf(int ch,int fromIndex) 返回从指定位置开始第一次找到的角标

int indexOf(String str) 返回第一次找到的字符串角标

int indexOf(String str,int fromIndex) 从指定位置开始第一次找到的字符串角标


int lastIndexOf(int ch) 找到最后一次找到该字符的角标

int lastIndexOf(int ch,int fromIndex) 从指定位置开始寻找最后一次找到该字符的角标

int lastIndexOf(String str) 找到最后一次找到该字符串的角标

int lastIndexOf(String str,int fromIndex) 从指定位置开始寻找最后一次找到该字符串的角标


获取子串

String subString(int start) 从start位置开始,到length()-1为止的字符串

String subString(int start,int end) 从开始到结束-1的字符串

String subString(0,str.length()) 从开始到结束-1的字符串  返回当前字符串


判断

字符串中包含指定的字符串

boolean contains(String subString)

字符串是否以指定字符串开头

boolean startsWith(String)

字符串是否以指定字符串结尾

boolean endsWith(String)

判断字符串是否相同

boolean equals(String) 覆盖object方法,判断字符串内容是否相同

判断字符串内容是否相同,忽略大小写

boolean equalsIgnoreCase(string)


转换

通过构造函数可以将字符数组或者字节数组转成字符串

new String(char[])  

new String(byte[])

可以通过字符串中的静态方法,将字符数组转成字符串

static String copyValueOf(char[])

static String copyValueOf(char[],int offset,int count)

static String valueOf(char[])

static String valueOf(char[],int offset,int count)

将基本数据类型或者对象转成字符串

static String valueOf(char)

static String valueOf(boolean)

static String valueOf(double)

static String valueOf(float)

static String valueOf(int)

static String valueOf(long)

static String valueOf(Object)

将字符串转换大小写

String toLowerCase()

String toUpperCase()

将字符串转成数组

char[] toCharArray()

byte[] getBytes();

将字符串转成字符串数组

String[] split(分割规则)

将字符串进行内容替换(修改后变成新字符串,并不是修改了原先的字符串)

String replace(oldChar,newChar)

String replace(oldstring,newstring)


追加内容

String concat(String)  等效于 +

String trim()  去除字符串两端的空格


int compareTo()

如果参数字符串等于此字符串,则返回值0 

按字典顺序排序,小于则返回小于0的值,大于则返回大于0的值


字符串的缓冲区 StringBuffer

构造一个初始容量为16个字符的缓冲区

特点

可以对字符串内容进行修改

是一个容器

是可变长度

缓冲区中可以存储任意类型的数据

最终需要变成字符串


固有方法

添加:

StringBuffer append(data) 追加数据

StringBuffer insert(index,data) 在指定位置插入数据,配合二分查找法插入min的值

删除

StringBuffer delete(start,end) 删除从start到end-1的元素

StringBuffer deleteCharAt(index) 删除指定位置的元素

sb.delete(0,sb.length()); 清空缓冲区

修改

StringBuffer replace(start,end,string) 将start到end-1替换成string

void setCharAt(index,char) 替换指定位置的字符

void setLength(len) 将原字符串置为指定长度的字符串

查找(查不到返回-1)

int indexOf(String) 返回指定子字符串在此字符串中第一次出现处的索引

int indexOf(String,int fromIndex) 从指定位置开始查找字符串

int lastIndexOf(String) 返回指定的子字符串在此字符串中最右边出现处的索引

int lastIndexOf(String,int fromIndex) 从指定的索引开始反向搜索

获取子串

string subString(start) 返回start到结尾的子串

string subString(start,end) 返回start到end-1的子串

反转

StringBuffer reverse() 返回一个字符串,该字符串是本来字符串反转后的结果


StringBuilder 字符串缓冲区

1.5之后出现,字符串生成器,跟buffer一样初始容量为16

用在字符串缓冲区被单个线程使用的时候

方法和buffer一样


区别:

StringBuffer线程安全

StringBuilder 线程不安全


单线程操作 StringBuilder 效率高

多线程操作 StringBuffer安全



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值