黑马程序员—String,StringBuffer,StringBuilder的常用方法与特点


  ------- android培训java培训、期待与您交流! ----------


一、String概述

String是计算机编程语言中的一个常见的变量

但是在java中他不仅仅是一个变量这么简单。


例:

String s1 = "abc"; 
s1 = "kk"; 

s1是一个类类型变量,"abc"是一个对象。

字符串最大特点:一旦被初始化就不可以被改变。

这里虽然输出结果为kk但那是s1指向了kk这个对象。内存地址发生改变。abc这个对象还在


String s2 = new String("abc");//这里与上面的abc作用相同。这里是用了String的构造函数。
System.out.println(s1==s2); //返回值为false因为这是两个对象。
System.out.println(s1.equals(s2));//返回值为true。因为String类复写了Object类中的equals方法,
//该方法用于判断字符串是否相同。

另外注意s2与s1是有区别的,s2有两个对象new 一个("abc")一个,而s1只有一个对象。


String常见功能获取与判断

1,获取。
1.1字符串中的包含的字符数,也就是字符串的长度。
int length();获取长度。注意与数组的区分开。数组的是属性。而这个是方法。
1.2根据位置获取位置上某个字符。
char charAt(int index);
1.3根据字符获取该字符在字符串中的位置。
int indexOf(int ch):返回的是ch字符串中第一次出现的位置。注意这个传递的参数之所以是int类型,是因为它传递的是AcsII码
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。

int indexOf(String str):返回的是str字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。

int lastIndexof(int ch):反向查找字符所在位置。


2,判断。
2.1 字符串中是否包含某一个子串。
boolean contains(str):
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1。表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
例:if(str.indexOf("aa")!=-1) 判断文件中包含"aa"为true。

而且该方法既可以判断,又可以获取出现的位置。
2.2 字符中是否有内容。
boolean ifEmpty():原理就是判断长度是否为0。注意:0,"",null之间是有区别的。""是一个对象。null为指向空。
2.3 字符串是否是以指定内容开头。
boolean startsWith(str);
2.4 字符串是否是以指定内容结尾。
boolean endsWith(str);
2.5判断字符串内容是否相同。复写了Object类中的equals方法
boolean equals(str);
2.6判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();


String 常见功能转换

3.转换:
3.1 将字符数组转成字符串。
构造函数:String(char[])
 String(char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static Strign copyValueOf(char[] data,int offset,int count);

static String valueOf(char[]);
3.2 将字符串转成字符数组。
char[] toCharArray();
3.3 将字节数组转成字符串
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
3.4 将字符串转成字节数组
byte[] getBytes();
3.5 将基本数据类型转换成字符串。
static String valueOf(int)
static String valueOf(double)

//3+""//String.valueOf(3); //两者效果相同,后者更为专业。

特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
注意:在执行编码操作时,只能用字节。

String常见功能切割与替换

4,替换

String replace(oldchar,newchar);


5,切割

String[] split(regex);


6,子串。获取字符串中的一部分

String substring(begin);

String substring(begin,end);


String常见功能比较与取出空格

7,转换,去除空格,比较。
7.1 将字符串转换成大写或者小写。
String toUpperCase();
String toLowerCase();
7.2 强字符串两端的多个空格去除。
String trim();
7.3 对两个字符串进行自然顺序比较。
int compareTo(string);

以上是String的常用功能


二、StringBuffered概述与常用功能

stringBuffer是字符缓冲区。
是一个容器。
1,而且长度是可变化的。
2,可以直接操作多个数据类型。
3,最终会通过toString方法变成字符串。


1,存储
StringBuffer append();将指定数据作为参数,添加到已有数据结尾处sb.append("abc").append(true).append(34)
StringBuffer insert(index,数据):可以将数据插入到指定index位置。index(角标)
2,删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end.
StringBuffer deleteCharAt(index):删除指定位置的字符。
3,获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start,int end)
4,修改
StringBuffer replace(start,end,String);
void setCharAt(int index,char ch)


5,反转
StringBuffer reverse();


6,将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
原起始位置  原结束位置 字符数组名  指定位置(指定位置数组角标)


三、StringBuilder概述与特性

JDK1.5 版本之后出现了StringBuilder.
StringBuilder与StringBuffer功能大致相同,可以看做是StringBuffer的升级版

StringBuild与StringBuffer区别:

1.StringBuffer是线程同步的。 //线程安全
2.StringBuilder是线程不同步的。//线程不安全

另外小知识
java升级三要素:
1,提高效率 2,简化书写 3,提高安全性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值