入门JAVA第十四天 String类

一、String类

String表示一个字符串。

String是一个比较特殊的引用数据类型。在使用上比较像基本数据类型。

        String str = “abc”;

字符串常量:”abc”,”文字”这些叫常量。有时也称字面量

内存中有一块区域,常量池。在常量池有也有一个区域叫字符串常量池

字符串常量都会保存到字符串常量池。

所以一个String类型的变量,使用一个常量时,可以不用new关键字实例化。因为字符串常量有位置放。

 

在字符串常量池中的常量,可以被多个字符串变量引用。

 1.1字符串常量不变性

public static void main(String[] args) {
    String s1 = "abc";
    String s2 = "abc";
    System.out.println(s1==s2);//true

    //字符串变量不可变
    s1 = s1 + "d";
    System.out.println(s1==s2);//false
}

1.2 构造方法

1 public String()

2 public String(String s)

3 public String(char[] value)

分配一个新的String,以便它表示当前包含在字符数组参数中的字符序列

4 public String(int[] value)

1.3 常用方法

 1 public char charAt(int index)

返回char指定索引处的值。

2 public int compareTo(String anotherString)

按字典顺序比较两个字符串。

结果:

如果参数字符串等于此字符串,则值为0 ;

一个值小于0如果这个字符串的字典比字符串参数小;

如果此字符串的字典大小超过字符串参数,则值大于0 。

3 public String concat(String str)

将指定的字符串连接到该字符串的末尾。

4 public boolean contains(CharSequence s)

当且仅当此字符串包含指定的char值序列时才返回true。

参数 

        s - 搜索的顺序

结果 

        如果此字符串包含 s ,则为true,否则为false

5 public int indexOf(int ch)

返回指定字符第一次出现的字符串内的 索引

6 public int lastIndexOf(int ch)

返回指定字符的最后一次出现的字符串中的索引。

7 public String substring(int beginIndex)

返回一个字符串,该字符串是此字符串的子字符串。

8 public String substring(int beginIndex,int endIndex)

返回一个字符串,该字符串是此字符串的子字符串。

参数 

        beginIndex - 开始索引,包括。

        endIndex - 结束索引,不包括

结果 

        指定的子字符串。

9 public String trim()

返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。

1.4 给一个文件名,随即修改文件名称

public class FileUtils{

        public static String getNewFile(String fileName);

}

调用:

String newFile = FileUtils.getNewFile(“play-2023.2.png”);

public class FileUtils {
    public static String getNewFile(String fileName){
        String name = UUIDUtils.getUUID();
        return name + fileName.substring(fileName.lastIndexOf("."));
    }
}

二、StringBuffer和StringBuilder

String类中有一个叫字符串常量不变性的特点。

一般操作String类时。+号的作用是二个字符串之间的拼接。

开发过程中,使用的不是特别多。使用+号进行拼接就可以了。

但是如果操作过程中,对String修改非常多的话。效率就很低。

修改在String中加入一个字符,后面追加字符的。

在Java中提供了二个带有缓存功能的字符串处理的类。

StringBufferStringBuilder

2.1 StringBuffer类

StringBuffer 一个带有缓存 的String类。

StringBuffer表示了一个字符串的缓冲区。我们可以在这个字符串的缓冲区中对字符串进行操作。

当操作完成之后。再将StringBuffer转换成String类。

(1) 构造方法

public StringBuffer()

构造一个没有字符的字符串缓冲区,初始容量为16个字符。

public StringBuffer(String str)

构造一个初始化为指定字符串内容的字符串缓冲区。 字符串缓冲区的初始容量为16加上字符串参数的长度

StringBuffer stringBuffer = new StringBuffer("abc");

(2) 常用方法

1 public StringBuffer append(String str)

将指定的字符串附加到此字符序列。

stringBuffer.append("def").append("ghi").append("kkk");

2 public StringBuffer delete(int start, int end)

删除此序列的子字符串中的字符。

子串开始于指定start并延伸到字符索引end - 1 ,或如果没有这样的字符存在的序列的结束。

如果start等于end ,则不作任何更改。

参数 

start - 开始索引,包括。

end - 结束索引,不包括。

3 public StringBuffer insert(int offset, String str)

将字符串插入到此字符序列中。

参数:

offset 插入字符串的索引位置

str 插入的字符串

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

用指定的String中的字符替换此序列的子字符串中的String 。

参数 

start - 开始索引,包括。

end - 结束索引,独家。

str - 将替换以前内容的字符串。

5 public String toString()

返回表示此顺序中的数据的字符串

public static void main(String[] args) {
    StringBuffer stringBuffer = new StringBuffer("abc");

    stringBuffer.append("def").append("ghi").append("kkk");

    stringBuffer.delete(1,3);//删除bc

    stringBuffer.insert(1,"xxx");//axxxdefghikkk

    stringBuffer.replace(1,3,"???");//a???xdefghikkk

    String str = stringBuffer.toString();//将StringBuffer转换为String

    System.out.println(str);
}

2.2 StringBuilder类 

StringBuffer一样的API

StringBuffer是线程安全的。

StringBuilder是线程不安全的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修贤323

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值