之前在编写代码的过程中也用到过String这个关键字,但是今天讲解的String跟之前学的String是有所不同的,下面我们就开始了解下String类的使用吧!!
- 一、String类的介绍
- 二、字符串常见的构造方法
- 三、String类型的数组转字符串
- 四、byte类型的数组转字符串
- 五、直接用String和构造方法创建String对象的区别对比
- 六、补充:什么是字符串常量池
- 七、字符串的比较
- 八、遍历字符串得到指定索引值的char值
- 九、分割字符串(根据参数分割,该参数不再存在)
- 十、字符串的替换
- 十一、获得指定位置字符串(从开始位置到结束位置)
- 十二、分割和替换的案例
String类在java.lang包下面,所以使用时不需要导包,属于引用数据类型
二、字符串常见的构造方法注意:除了java.lang包之外的包都需要进行导包,如Scanner,导包使用关键字import
| 方法名 | 说明 |
|---|---|
| public String() | 创建一个空白字符串对象,不含有任何内容 |
| public String (char[] chs) | 根据字符数组的内容来创建字符串对象 |
| public String(String original) | 根据传入的字符串内容来创建字符串对象 |
| String s=“abc” | 直接赋值的方式创建字符串对象,内容就是abc |
String array[] = {1,2,3};
String arr = new String(array)
输出:
123
四、byte类型的数组转字符串
byte arr={97,98,99};
String arr = new String(arr);
输出:
abc
输出数组中的每个值对应的ASCII码
五、直接用String和构造方法创建String对象的区别对比
①、直接用String a= “abc”;
这种方式定义的a变量存储在 常量池 中
②、使用 new关键字创建字符串对象
String b = new String();
此时的b变量存储在 堆 中
③、区别
注意:
用==号做比较
基本数据类型 — 比较的是具体的值
引用数据类型 — 比较的是地址值
④、以 " " 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会创建一个String对象,并在字符串常量池中维护
当使用双引号创建字符串对象的时候,系统会检查字符串是否在字符串常量池中存在,不存在则会创建,存在则不会重新创建而是直接复用。
七、字符串的比较字符串是对象,它比较内容是否相同,是通过equals()方法来实现的。
public boolean equals(Object anObject) 将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串即可
可以直接使用.equals()来判断两个字符串是否相等
boolean s = s1.equals(s2);八、遍历字符串得到指定索引值的char值
方法: charAt(int index)
作用: 返回指定索引处的char值
使用:char a = s.charAt(0)
方法: split(String a);
作用: 根据形参来判断从哪开始分割 ,不会改变原数组
使用:
s="ccabcdd";
s = s.split("abc");
输出:
cc
dd
十、字符串的替换
方法: replace(old , new);
作用: 用新的new去替换旧的old
使用:
s="abcaaa"
s = s.replace("abc","***");
输出:
***aa
十一、获得指定位置字符串(从开始位置到结束位置)
方法: substring(2,3)
作用: 得到指定索引值位置的值,不会改变原来的数组
使用:
s = "abcde"; s = s.substring(2,4); // 区间是[2,4) 4的位置取不到 输出: cd十二、分割和替换的案例
题目:
需求:以字符串的形式从键盘接受—个手机号,将中间四位号码屏蔽最终效果为:156****1234
代码:
import java.util.Scanner;
public class Telephone {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入手机号");
String telephone = input.next();
// TODO 分割,得到要替换的参数
String split = telephone.substring(3,7);
// TODO 替换,将分割得到的参数全部用*替换
telephone = telephone.replace(split,"****");
System.out.println(telephone);
}
}
字符类中有很多的方法,可以去专门的网站去学习学习,这里我主要看的是菜鸟教程:菜鸟教程-Java-String类的介绍



