Java基础第9天

API

String

String类的概述

  • 什么是字符串

    多个字符表示的一串数据,也可以看成是一个字符数组

  • String 类

    String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
    //演示字符串
    String str = “aaa”;
    str = “我是字符串”;

  • String字符串常量特点

    字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?
    就是说一旦这个字符串确定,那么就会在内存区域中生成这个字符串。

字符串本身不能改变,但 str 变量中记录的地址值是可以改变的。

String的构造方法

构造方法是用来完成 String对象的创建,如下所示,列出常用的构造方法

/**
* public String():空构造
* public String(byte[] bytes):把字节数组转成字符串
* public String(byte[] bytes,int index,int length):把字节数组的一部分
转成字符串
* public String(char[] value):把字符数组转成字符串
*
* public String(char[] value,int index,int count):把字符数组的一部分转
成字符串,index 第一位开始取(包括),count 取多少个
*
* public String(String original):把字符串常量值转成字符串
*
* length() 返回此字符串的长度。
*/

String两种方式创建字符串的区别

String特点:一旦被赋值就不能改变
通过使用双引号的方式创建对象与 new 的方式创建对象,有什么不同呢?看如下程序与图解:

String s3 = “abc”;
String s4 = new String(“abc”);
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true,
//因为 String 重写了 equals 方法,建立了字符串自己的判断相同的依据(通过字
符串对象中的字符来判断)

s3 和s4的创建方式有什么不同呢?

s3创建,在内存中只有一个对象。这个对象在字符串常量池中
s4 创建,在内存中有两个对象。一个 new 的对象在堆中,一个字符串本身对象,在字符串常量池中

String类的判断功能

部分判断方法如下

//boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
//boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小

//boolean contains(String str):判断大字符串中是否包含小字符串
//boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
//boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
//boolean isEmpty():判断字符串是否为空。

String类的获取功能

/**
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):从指定位置开始到指定位置结束截取
字符串。
*/

String类转换功能

/**
byte[] getBytes():把字符串转换为字节数组。
char[] toCharArray():把字符串转换为字符数组。
static String valueOf(char[] chs):把字符数组转成字符串。
static String valueOf(int i):把int 类型的数据转成字符串。
String toLowerCase():把字符串转成小写。
String toUpperCase():把字符串转成大写。
String concat(String str):把字符串拼接。
*/

String替换功能

/**
String replace(char old,char new):把字符串中的某个字符用新的字符所替换
String replace(String old,String new)把字符串中的某个字符串用新的来替换
String trim() 去除字符串两空格
*/

StringBuffer

StringBuffer类

StringBuffer 又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
StringBuffer 它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。

StringBuffer 的方法使用

  • public StringBuffer append(boolean b)
    该方法的作用是追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连接,调用
    该方法以后,StringBuffer 对象的内容也发生改变,此方式比 String 效率更高,经常应用于
    数据库 SQL 语句的连接。

  • StringBuffer sb = new StringBuffer(“abc”);
    sb.append(true);
     public StringBuffer deleteCharAt(int index)
    该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。

  • StringBuffer sb = new StringBuffer(“Dong”);
    sb. deleteCharAt(0);
    对象 sb 的值变 为”ong”。

  • public StringBuffer delete(int start,int end)
    该方法的作用是删除指定区间以内的所有字符,包含 start,不包含 end 索引值的区间。

  • StringBuffer sb = new StringBuffer(“Dong”);
    sb. delete (1,4);
    剩余的字符形成新的字符串。则对象 sb 的值是”D”

  • public StringBuffer insert(int offset, boolean b),
    该方法的作用是在 StringBuffer 对象中插入内容,然后形成新的字符串。例如:

  • StringBuffer sb = new StringBuffer(“Dong”);
    sb.insert(4,false);
    该示例代码的作用是在对象 sb 的索引值 4 的位置插入 false 值,形成新的字符串,则执
    行以后对象 sb 的值是”Dongflase”。

  • public StringBuffer reverse()
    该方法的作用是将 StringBuffer 对象中的内容反转,然后形成新的字符串。

  • StringBuffer sb = new StringBuffer(“Dong”);
    sb.reverse();
    经过反转以后,对象 sb 中的内容将变为”gnoD”。

  • public void setCharAt(int index, char ch)该方法的作用是修改对象中索引值为 index 位置
    的字符为新的字符 ch。例如:

  • StringBuffer sb = new StringBuffer(“Dong”);
    sb.setCharAt(1,’D’);
    则对象 sb 的值将变成”DDng”。

对象的方法链式调用

在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。这种时候,我们就可以把代码现在一起,
如 append 方法一样,代码如下:

创建一个字符串缓冲区对象。用于存储数据。
StringBuffer sb = new StringBuffer();
添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。
String str = sb.append(true).append(“hehe”).toString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值