Java笔记_013_字符串
字符串
API
API概述
Application Programming Interface:应用程序编程接口
Java API:
指的就是JDK中提供的各种功能的Java类
这些类将底层的实现封装起来,我们不需要关心这些类是怎么实现的,只需要学习这鞋类如何使用即可,我们可以用过帮助文档来学习这些API如何使用
注意:
- 调用方法的时候,如果方法有明确的返回值,我们用变量接收
- 可以手动完成,也可以使用快捷键的方式完成(Ctrl+Alt+v)
String
String概述
String在java.lang包里面,所以我们使用的时候不用导包
String类带边字符串,java中的所有字符串文字都被实现为此类的实例
也就是说,java程序中的所有带双引号的字符串,都是String类的对象
字符串的特点
- 字符串不可变,他们的值在创建后不能被更改
- 虽然String的值是不可变的,但是他们可以被共享
- 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])
String的构造方法
方法名 | 说明 |
---|---|
public String() | 创建一个空斋字符串对象,不含有任何内容 |
public String(char[] chs) | 根据字符数组的内容,来创建一个字符串对象 |
public String(byte[] bys) | 根据字节数组的内容,来创建一个字符串对象 |
String s = “abc” | 直接赋值的方式创建字符串对象,内容就是abc |
package com.test02;
public class StringDemo1 {
public static void main(String[] args) {
String s1 = new String();
System.out.println("s1:" + s1);
char[] chs = {'a', 'b', 'c'};
String s2 = new String(chs);
System.out.println("s2:" + s2);
byte[] bys = {97, 98, 99};
String s3 = new String(bys);
System.out.println("s3:" + s3);
String s4 = "abc";
System.out.println("s4:" + s4);
}
}
输出结果:
String对象的特点
每次new出来的对象是不一样的,是两个对象
当赋值的字符串相同时,两个字符串实际上是一个字符对象
字符串的比较
使用==作比较
- 基本数据类型:比较的是数据值是否相同
- 引用数据类型:比较的是地址值是否相同
字符串是对象,它比较内容是否相等,是通过一个方法来实现的,这个方法叫做:equals()
public boolean equals(Object anObject)
:将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串public char charAt(int index)
:返回指定索引处的char值,字符串的索引也是从0开始的public int length()
:返回字符串的长度
StringBuilder
StringBuilder概述
StringBuilder是一个可变的字符串类,我们可以把它看做一个容器,这里的可变指的是StringBuilder对象中的内容是可变的,做拼接的时候是不会产生新的变量的
String和StringBuilder的区别:
- String内容是可变的
- StringBuilder内容是不可变的
StringBuilder的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含任何内容 |
public StringBuilder(String Str) | 根据字符串的内容,来创建一个可变字符串对象 |
StringBuilder str1 = new StringBuilder();
StringBuilder str2 = new StringBuilder("HelloWorld");
StringBuilder的添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
StringBuilder str2 = new StringBuilder("HelloWorld");
str2.append("SoLi"); // 不需要变量接收
System.out.println(str2);
str2.reverse(); // 不需要变量接收
System.out.println(str2);
// 链式编程
str2.append(1).append(2).append(3);
System.out.println(str2);
StringBuilder和String相互转换
-
StringBuilder转为String
public String toString()
通过toString()
方法就可以实现把StringBuilder转换为StringStringBuilder str2 = new StringBuilder("HelloWorld"); String s = str2.toString();
-
String转为StringBuilder
public StringBuilder(String str)
通过构造方法就可以实现把String转换为StringBuilderString s = "HelloWorld"; StringBuilder str2 = new StringBuilder(s);