Java基础复习_day06_String&StringBuilder

API

1. 概念

  • 应用程序编程接口, 其实就是java提供的一些核心类库;

2. 作用

  • 我们可以通过查询API文档来查询并使用java已经提前写好的类和方法;

String类

1. 概述

  • String类代表了所有字符创类型的对象;
  • 在java.lang包下, 使用不需要导包;
  • 该类中提供了很多关于字符串操作的成员方法, 我们可以使用这些方法处理字符串;

2. 特点

① 字符串不可改变,它的值在创建后不可更改;
② 虽然值不可改变,但是值可以被共享使用;
③ 字符串效果上相当于字符数组,但底层原理是字节数组;

3. 创建方式

① 构造方法

// 空参构造
String s = new String();

// 使用指定的字节数组构造
byte[] b = {65, 66};
String s1 = new String(b); //AB

// 使用指定的字符数组构造
char[] c = {'a', 'b'};
String s2 = new String(c); //ab

② 使用双引号定义字符串

String s = "hello";

4. 字符串的比较

① == 号的功能

  • 如果比较的是基本数据类型, 比较的是具体的值;
  • 如果比较的是引用数据类型, 比较的是对象的地址值;
    ② 字符串内容的比较
  • equals 严格比较(两个字符串完全一样,则返回true,否则返回false);
  • equalsIgnoreCase 忽略大小写比较;

5. 常用方法

① charAt​(int index) 返回指定索引处的 char值。
② startsWith​(String prefix) 测试此字符串是否以指定的前缀开头。
③ endsWith​(String suffix) 测试此字符串是否以指定的后缀结尾。
④ getBytes​() 使用平台的默认字符集将该 String编码为一系列字节,将结果存储到新的字节数组中。
⑤ indexOf​(String str) 返回指定子字符串第一次出现的字符串内的索引。
⑥ length​() 返回此字符串的长度。
⑦ replace​(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
⑧ split(String regex) 根据给定正则表达式的匹配拆分此字符串。
⑨ substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
⑩ toCharArray() 将此字符串转换为一个新的字符数组。

6. 特点

  • 使用双引号创建出来的字符串对象是常量,可以被多个变量共享使用;
  • 字符串中所有的方法,都不会改变原字符串的值,方法执行后会得到一个新的字符串对象;

StringBuilder

1. 概念

  • StringBuilder代表字符串缓冲区

2. 作用

  • 用于拼接字符串的时候,提升程序的性能,减少字符串拼接过程中产生的字符串常量垃圾;

3. 创建方法

// 1. 空参构造
StringBuilder sb1 = new StringBuilder();

// 2. 带参构造
StringBuilder sb2 = new StringBuilder("hello");

4. 常用方法

① append(String str) 将指定的字符串追加到此字符序列。
② charAt(int index) 返回此序列中指定索引处的 char 值。
③ insert(int offset, String str) 将字符串插入此字符序列中.
④ length() 返回长度(字符数)。
⑤ replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。
⑥ reverse() 将此字符序列用其反转形式取代。
⑦ toString() 返回此序列中数据的字符串表示形式。

5. String与StringBuilder的转换

  • 使用StringBuilder的toString方法,可以将字符串缓冲区转成字符串对象;
  • 使用StringBuilder的构造方法,可以将字符串对象转成字符串缓冲区对象;

6. String与StringBuilder的区别

  1. 字符串内容不可改变;
  2. 字符串缓冲区内容可以改变;
  3. 3:StringBuilder的优势:
  • 有reverse方法,可以对内容反转,而字符串中没有这个方法;
  • 使用append方法对字符串拼接的过程中不会产生垃圾常量,性能高;

String和StringBuilder的练习

1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结果

public class StringBuilderDemo {
    public static void main(String[] args) {
        // 调用方法,获取字符串
        String s  = getStr();

        System.out.println(s);
    }

    private static String getStr() {
        // 创建StringBuilder对象
        StringBuilder sb = new StringBuilder();

        // 创建随机数对象
        Random r = new Random();
		
		// 循环5次, 产生5个随机字符
        for (int j = 0; j < 5; j++) {
            // 产生0-1的随机数
            int i = r.nextInt(2);

            // 如果产生的i是0, 就去获取随机的大写字母, 如果是1, 就去获取小写字母
            switch (i) {
                case 0:// 取随机的大写字母
                    int i1 = r.nextInt('Z' - 'A' + 1) + 'A';
                    // 将获取到的随机数转为字符,添加到sb中
                    sb.append((char)i1);
                    break;
                case 1:// 取随机的小写字母
                    int i2 = r.nextInt('z' - 'a' + 1) + 'a';
                    // 将获取到的随机数转为字符,添加到sb中
                    sb.append((char)i2);
                    break;
                default:
                    break;
            }
        }

        // 将sb转换为String, 并返回
        return sb.toString();
    }
}
发布了22 篇原创文章 · 获赞 4 · 访问量 1286

猜你喜欢

转载自blog.csdn.net/weixin_42931689/article/details/104146797