黑马程序员------毕老师视频笔记第13-17天------JavaAPI(String类、StringBuffer类)(1)

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

String类

Java是纯面向对象的语言,讲究万物皆对象,同样的,字符串也被封装成了对象,就是String类。

public final class String extends Objectimplements Serializable,Comparable,CharSequence

 

把字符串封装成对象的好处不言而喻,可以对这种常见的数据进行方便的操作,对象封装以后,可以定义自己的属性和行为。

 

字符串是一个特殊的对象,一旦初始化之后就不可以被改变

String s = “aaa”;

s是字符串类型的引用变量,它可以改变指向其他的字符串,但是右边的字符串对象是不能改变的

 

对String类的学习,主要学习它的API

 

1.获取

①获取字符串长度

         intlength()

②根据位置获取字符串

         charcharAt(int index)

③根据字符获取位置

         intindexOf(int ch)

int indexOf(intch,int fromIndex)

int indexOf(Stringstr)

intindexOf(String str,int fromIndex)

 

intlastIndexOf(int ch)

intlastIndexOf(int ch,int fromIndex)

intlastIndexOf(String str)

int lastIndexOf(Stringstr,int fromIndex)

④获取子串

         StringsubString(int beginIndex,int endIndex)

         Stringsubstring(int beginIndex)

2.判断

①两个字符串是否相同

         booleanequals(Objec obj)

         booleanequalsIgnoreCase(String str)

②字符串中是否包含某个字符

         booleancontains(String str)

③字符串是否以指定字符串开头或结尾

         booleanstartsWith(String str)

         booleanendsWith(String str)

④字符串是否为空

         booleanisEmpty()

3.字符串转换

①将字符串变成字符串数组

         String[]split(String regex)

②将字符串变成字符数组

         Char[]toCharArray()

③将字符串变成字节数组

         byte[]getBytes()

④将字符数组变成字符串

         String(char[] value)

         String(char[]value, int offset, int count)

 

         staticString valueOf(char[] value)

         staticString valueOf(char[] value, int offset, int count)

⑤字符串的大小写转换

         StringtoUpperCase();

         StringtoLowerCase()

⑥字符串内容替换

         Stringreplace(char oldch,char newch)

Stringreplace(CharSequence target, CharSequence replacement)

⑦字符串两端去空格

         Stringtrim()

⑧链接字符串

         Stringconcat(String str)

4.比较

         intcompareTo(String str)

 

示例:

 

 

StringBuffer类(StringBuilder类)

 

public final class StringBuffer extendsObject implements Serializable, CharSequence

 

字符串缓冲区,是一个容器

字符串的组成原理就是通过它实现的

StringBuffer可以对字符串内容进行增删,很多方法与String相同

StringBuffer是可变长度的

 

CURD

create update read delete

 

1.添加

         StringBufferappend(data)  重载函数很多,data可以使很多类型数据

         StringBufferinsert(int offset, 数据) 重载方式很多

2.删除

         StringBufferdelete(int start, int end)   注意:含头不含尾

         deleteChartAt(intindex)   删除指定位置的元素

3.查找

         charcharAt(int index)

         intindexOf(String str)

         intlastIndexOf(String str)

4.修改

         StringBufferreplace(int start, int end, String str)

         voidsetCharAt(int index, char ch)

5.翻转

         StringBufferreverse()

6.将缓冲区中的指定数据存储到字符数组中

         voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

 

jdk升级,StringBuffer变StringBuilder

StringBuilder是线程不同步的,效率高

StringBuffer是线程同步的

StringBuilder是对StringBuffer的一个简单替换,用在字符串缓冲区被单个线程使用的时候

 

StringBuffer和StringBuilder的区别

1.StringBuffer线程安全,StringBuilder线程不安全

2.单线程操作,用StringBuilder效率高,多线程操作用StringBuffer安全

 

目的:提高效率,简化书写

 

特点总结:

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

2.是一个容器

3.是可变长度的

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

4.最终需要变成字符串

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

你可能感兴趣的:(黑马程序员------毕老师视频笔记第13-17天------JavaAPI(String类、StringBuffer类)(1))