String类和StringBuffer类

一、String类

1.String类的获取功能
int length() 获取字符串的长度
char charAt(int index) 通过下标获取字符
int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(int ch,int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int indexOf(String str,int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
String substring(int start)返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int start,int end)返回一个新字符串,它是此字符串的一个子字符串。
补充:int lastIndexOf(String str)返回指定子字符串在此字符串中最后一次出现处的索引

2.String类的转换功能
byte[] getBytes() 将字符串转换为byte数组
char[] toCharArray() 将字符串转换为char数组
static String valueOf(char[] chs) 将char数组转换为字符串
static String valueOf(int i) 将整数int转换为字符串
String toLowerCase() 将字符串中的所有字符都转换为小写
String toUpperCase() 将字符串中的所有字符都转换为大写
String concat(String str) 将指定字符串连接到此字符串的结尾

3.String类的其他功能
String replace(char old,char new)替换
String replace(String old,String new)替换
String trim()去除字符串两端空格
int compareTo(String str)按字典顺序比较两个字符串

4.String类的练习
a.把数组中的数据按照指定个格式拼接成一个字符串
举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]

b.字符串反转
举例:键盘录入”abc” 输出结果:”cba”

c.统计大串中小串出现的次数
举例:
在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次

二、StringBuffer类
1.我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题
StringBuffer是线程安全的可变字符序列。
2.构造方法
public StringBuffer() 常用

public StringBuffer(int capacity)

public StringBuffer(String str) 常用

//常用
StringBuffer str1 = new StringBuffer();
System.out.println(str1.length());//长度0

//构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
StringBuffer str3 = new StringBuffer("abc");
System.out.println(str3.length());//长度3

3.String和StringBuffer比较
1.相同点:都是对一串字符的操作
2.不同点:String不可变类(定长字符串) StringBuffer是可变类(可变长字符串)

StringBuffer str1 = new StringBuffer();
StringBuffer str2 = str1.append("abc");
System.out.println(str1==str2);//true

String str3 = new String();
String str4 = str3+"abc";
System.out.println(str3==str4);//false

4.StringBuffer类的成员方法《了解》(操作之后方法返回缓冲流对象的本身)

添加功能

public StringBuffer append(String str)

public StringBuffer insert(int offset,String str)

删除功能

public StringBuffer deleteCharAt(int index)

public StringBuffer delete(int start,int end)

替换功能

public StringBuffer replace(int start,int end,String str)

反转功能
public StringBuffer reverse()

注意:
public String substring(int start)

public String substring(int start,int end)

截取功能和前面几个功能的不同
返回值类型是String类型,本身没有发生改变

5.String和StringBuffer的相互转换
需求: A -- B的转换

我们把A转换为B,其实是为了使用B的功能。

B -- A的转换

我们可能要的结果是A类型,所以还得转回来。
如何转换:
String->StringBuffer
方式1:通过构造方法
StringBuffer sb = new StringBuffer(s);
方式2:通过append()方法
StringBuffer sb2 = new StringBuffer();
sb2.append(s);

StringBuffer->String
方式1:通过构造方法
String str = new String(buffer);

方式2:通过toString()方法
String str2 = buffer.toString();

6.面试题String,StringBuffer,StringBuilder的区别?
A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。
B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高

7.StringBuffer和数组的区别?

二者都可以看出是一个容器,装其他的数据。

但是呢,StringBuffer的数据最终是一个字符串数据。

而数组可以放置多种数据,但必须是同一种数据类型的。

8.String作为参数传递
,StringBuffer作为参数传递

参数传递
1.基本类型(8个):形式参数的改变不影响实际参数
2.引用类型:形式参数的改变直接影响实际参数
注意:String作为参数传递,效果和基本类型作为参数传递是一样的

10.排序
冒泡 选择 插入 快速

时间: 2024-10-17 16:05:25

String类和StringBuffer类的相关文章

JAVA API(一)String类和StringBuffer类

1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号""之内,如"abc".在Java中定义了String和StringBuffer类来封装字符串,并提供了一系列操作字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用.下面将对String类和StringBuffer类详细讲解. 1.1String类的初始

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对比

本文主要介绍String类.StringBuffer类.StringBuilder类的区别  : 一.概述 (一)String 字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法完全相同. 区别在于StringBuffer每个方法中前面添加了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可变量,

Java中的String类与StringBuffer类

String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类. 具体解释如下: 在java中有3个类来负责字符的操作. 1.Character 是进行单个字符操作的, 2.String 对一串字符进行操作.不可变类. 3.StringB

【学习笔记】String进阶:StringBuffer类(线程安全)和StringBuilder类

一.除了使用String类存储字符串之外,还可以使用StringBuffer类存储字符串.而且它是比String类更高效的存储字符串的一种引用数据类型. 优点: 对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率. 1.如何使用StringBuffer类 StringBuffer类位于java.util包中,是String类的增强类.声明StringBuffer对象并初始化的方法如下: StringBuffer sb = new StringBuffer("青春无悔

String类和StringBuffer类的区别

首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,每次返回的都是原对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类. 关于以上具体解释如下: 在java中有3个类来负责字符的操作. 1.Character 是进行单个字符操作的, 2.String 对一串字符进行

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对照

本文主要介绍String类.StringBuffer类.StringBuilder类的差别  : 一.概述 (一)String 字符串常量.可是它具有不可变性,就是一旦创建,对它进行的不论什么改动操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法全然同样. 差别在于StringBuffer每一个方法中前面加入了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可

新手学JAVA(二)----String类与StringBuffer类的区别

在Java中有两种字符串的操作:String类和StringBuffer类(缓冲字符串处理类). 下面先简单的说一下两者的区别. String类和StringBuffer类都提供了相应的方法实现字符串的操作,但二者略有不同. (1) String类 该类一旦产生一个字符串,其对象就不可变.String类的内容和长度是固定的.如果程序需要获得字符串的信息需要调用系统提供的各种字符串操作方法实现.虽然通过各种系统方法可以对字符串施加操作,但这并不改变对象实例本身,而是生成一个新的实例.系统为Stri

String类,StringBuffer类转字符数组

String不可变类型和StringBuffer可变类型 String类和StringBuffer类都是字符串表示类,区别在于String对象引用变量是不可变的,而StringBuffer类对象引用变量是可变的. 我当时学的时候也会很不理解这个可变不可变的区别,后面看了一篇博客才懂了这个意思(https://www.cnblogs.com/yumiaoxia/p/9010721.html#commentform). 方法传参,基本数据类型传的是常量值,而引用数据类型传的是地址值.但是String

JavaSE入门学习29:Java常用类之StringBuffer类和StringBuilder类

一StringBuilder类 (1)认识StringBuilder类 在Java中,除了可以使用String类来存储字符串,还可以使用StringBuilder类或 StringBuffer类存储字符串,在需 要频繁对字符串进行修改操作时使用StringBuilder的效率比String要高. String 类具有是不可变性.如: 运行结果: 从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld".当频繁操作字符串时,就会额 外产生很多临时变量.使用S

(1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合

1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存,此时对内存空间的消耗比较大. 为了节省内存空间希望对字符串内容本身直接进行更改,则需要使用java.lang.StringBuilder类或者java.lang.StringBuffer类. 其中StringBuffer类是从jdk1.0开始存在,是一个线程安全的可变字符序列,效率比较低 其中St