StringBuffer 简介
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 45 课,共 59 课。
StringBuffer 与 StringBuilder 类似,但它是线程安全的(可同时进行多项操作)。它用于创建可变(可修改)的字符串。
创建一个初始文本为以下内容的 StringBuffer:
StringBuffer sb = new StringBuffer("Hello");使用 append() 添加更多文本:
sb.append(" World");运行上面的代码后,sb 中包含:
Hello World
使用 insert() 和 replace() 修改文本:
StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi "); // 在开头添加内容
sb.replace(0, 2, "Hey"); // 将 "Hi" 替换为 "Hey"运行上面的代码后,sb 中包含:
Hey Java
要查找某段文本的起始位置,请使用 indexOf()。它会返回第一个匹配项的位置;如果文本不存在,则返回 -1:
StringBuffer sb = new StringBuffer("Hey Java");
int pos = sb.indexOf("Java"); // 4
int none = sb.indexOf("Python"); // -1挑战
简单创建一个名为 modifyText 的方法,它接受三个参数:
- 要修改的 String(
text) - 要查找的 String(
target) - 要替换 target 的 String(
replacement)
该方法应执行以下操作:
- 使用输入文本创建一个 StringBuffer
- 将 target 第一次出现的位置替换为 replacement
- 在末尾添加一个感叹号
- 返回最终字符串
返回消息应为:
- 如果任何输入为 null:返回 "Invalid input"
- 如果未找到 target:返回末尾带感叹号的原始文本
- 如果操作成功:返回修改后的文本
亲手试试
import java.util.Scanner;
public class Main {
public static String modifyText(String text, String target, String replacement) {
// 在这里编写你的代码
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String target = scanner.nextLine();
String replacement = scanner.nextLine();
if (text.equals("null")) text = null;
if (target.equals("null")) target = null;
if (replacement.equals("null")) replacement = null;
System.out.println(modifyText(text, target, replacement));
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Java 在线编译器