JAVA基础知识复习(二)-字符串处理

本文最后更新于:December 3, 2021 pm

Java基础知识复习。字符串处理。

目录

1.String 类

通过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中。String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串。
注意:
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer 或者 StringBuilder 类。
至于为什么String类是不可改变的,而你自己去测试时发现是可以改变的,原因可在另一篇《Java知识拓展》 中看 。

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

1
2
3
4
5
String s1 = "lichengloong";              // String 直接创建
String s2 = "lichengloong"; // String 直接创建
String s3 = s1; // 相同引用
String s4 = new String("lichengloong"); // String 对象创建
String s5 = new String("lichengloong"); // String 对象创建

简单理解:

  • 公共池:就是相同的东西只有一个,所有需要他的都指向他。比如上例中的,s1、s2、s3都是指向的公共池中的同一个 lichengloong 。虽然有三个创建,但只有一个 lichengloong 。
  • 堆:就是new 一个就有一个。要多少就建多少。比如上例中的s4、s5就是各自创建了一个,并不是指向的同一个,而是自己是自己的。

字符串长度

1
2
String site = "lichengloong";
int len = site.length(); //length()方法与length属性区别开,具体见《java知识拓展》

连接字符串

String 类提供了连接两个字符串的方法:

1.string1.concat(string2);返回 string2 连接 string1 的新字符串。也可以对字符串常量使用 concat() 方法,如:”我的名字是 “.concat(“lichengloong”);
2.更常用的是使用’+’操作符来连接字符串,如:”Hello,” + “lichengloong” + “!”

格式化字符串

输出格式化数字可以使用 printf() 和 format() 方法。
String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。
String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。
例子:

1
2
3
4
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", floatVar, intVar, stringVar);

或者

1
2
3
4
5
String fs;
fs = String.format("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
" %s", floatVar, intVar, stringVar);

2.StringBuffer 类

StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。

创建 StringBuffer 类

StringBuffer 类提供了 3 个构造方法来创建一个字符串。

1.StringBuffer() 构造一个空的字符串缓冲区,并且初始化为 16 个字符的容量。
2.StringBuffer(int length) 创建一个空的字符串缓冲区,并且初始化为指定长度 length 的容量。
3.StringBuffer(String str) 创建一个字符串缓冲区,并将其内容初始化为指定的字符串内容 str,字符串缓冲区的初始容量为 16 加上字符串 str 的长度。

1
2
3
4
5
6
StringBuffer str1 = new StringBuffer();
StringBuffer str2 = new StringBuffer(10);
StringBuffer str3 = new StringBuffer("青春无悔");
System.out.println(str1.capacity()); // 输出 16 str1.capacity() 用于查看 str1 的容量
System.out.println(str2.capacity()); // 输出 10
System.out.println(str3.capacity()); // 输出 20

追加字符串

StringBuffer 类的 append() 方法用于向原有 StringBuffer 对象中追加字符串。

1
2
3
4
5
6
StringBuffer 对象.append(String str)

StringBuffer buffer = new StringBuffer("hello,"); // 创建一个 StringBuffer 对象
String str = "World!";
buffer.append(str); // 向 StringBuffer 对象追加 str 字符串
// 输出:Hello,World!

替换字符

StringBuffer 类的 setCharAt() 方法用于在字符串的指定索引位置替换一个字符。

1
2
3
4
5
6
7
8
9
StringBuffer 对象.setCharAt(int index, char ch);

StringBuffer sb = new StringBuffer("hello");
sb.setCharAt(1,'E');
System.out.println(sb); // 输出:hEllo
sb.setCharAt(0,'H');
System.out.println(sb); // 输出:HEllo
sb.setCharAt(2,'p');
System.out.println(sb); // 输出:HEplo

反转字符串

StringBuffer 类中的 reverse() 方法用于将字符串序列用其反转的形式取代。

1
2
3
4
5
StringBuffer 对象.reverse();

StringBuffer sb = new StringBuffer("java");
sb.reverse();
System.out.println(sb); // 输出:avaj

删除字符串

StringBuffer 类提供了 deleteCharAt() 和 delete() 两个删除字符串的方法。

1.deleteCharAt() 方法

deleteCharAt() 方法用于移除(删除)序列中指定位置的字符,然后将剩余的内容形成一个新的字符串。

1
2
3
4
5
StringBuffer 对象.deleteCharAt(int index);

StringBuffer sb = new StringBuffer("She");
sb.deleteCharAt(2);
System.out.println(sb); // 输出:Sh
2. delete() 方法

delete() 方法用于移除序列中子字符串的字符。该方法的作用是删除指定区域以内的所有字符。

1
2
3
4
5
6
7
8
StringBuffer 对象.delete(int start,int end);
//start 表示要删除字符的起始索引值(包括索引值所对应的字符),end 表示要删除字符串的结束索引值(不包括索引值所对应的字符)。

StringBuffer sb = new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb); // 输出:he jack
sb.delete(2,5);
System.out.println(sb); // 输出:heck

本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/62429575.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!