java stringbuilder将最后一个字符串替换
时间: 2023-07-18 20:36:34 浏览: 337
可以使用StringBuilder的setCharAt()方法将最后一个字符替换为另一个字符。以下是示例代码:
```
StringBuilder sb = new StringBuilder("Hello World!");
sb.setCharAt(sb.length()-1, '?'); // 将最后一个字符替换为问号
System.out.println(sb.toString()); // 输出: Hello World?
```
在这个示例中,我们首先创建一个StringBuilder对象,并将其初始化为"Hello World!"。然后,我们使用setCharAt()方法将最后一个字符替换为问号。最后,我们使用toString()方法将StringBuilder对象转换为字符串并输出它。
相关问题
StringBuilder字符串替换 指定位置
以下是使用StringBuilder进行字符串替换的示例代码:
```java
StringBuilder sb = new StringBuilder("Hello, world!");
sb.replace(7, 12, "Java");
System.out.println(sb.toString()); // 输出:Hello, Java!
```
在上面的示例中,我们首先创建了一个StringBuilder对象,并将其初始化为"Hello, world!"。然后,我们使用replace()方法将字符串中索引7到12的字符替换为"Java"。最后,我们使用toString()方法将StringBuilder对象转换为String对象,并将其打印出来。
需要注意的是,replace()方法的第一个参数是要替换的起始索引,第二个参数是要替换的结束索引(不包括该索引对应的字符),第三个参数是要替换成的字符串。
编写一个方法,传入两个字符串,分别使用 String、StringBuffer 和 StringBuilder 来进行以下操作: 反转第一个字符串。 将第一个字符串中的元音字母替换为星号 (*)。 将第二个字符串添加到第一个字符串的末尾,重复执行 1000 次。
编写一个方法实现这样的操作,我们需要分别使用 String、StringBuffer 和 StringBuilder 类来完成。首先,我们需要注意的是 String 类是不可变的,所以在每次操作中实际上都会创建新的字符串对象。而 StringBuffer 和 StringBuilder 类则是可变的,它们在进行字符串拼接和修改操作时效率更高。
以下是使用 Java 语言实现的一个示例方法:
```java
public class StringOperation {
public static void performStringOperations(String str1, String str2) {
// 使用 String 类型
String reversedStr1 = new StringBuilder(str1).reverse().toString();
String vowelsReplacedStr1 = replaceVowels(reversedStr1);
String finalStr1 = repeatAppend(vowelsReplacedStr1, str2, 1000);
System.out.println("String result: " + finalStr1);
// 使用 StringBuffer 类型
StringBuffer sb = new StringBuffer(str1);
sb.reverse();
String reversedStr1Sb = sb.toString();
sb = new StringBuffer(reversedStr1Sb);
sb.replace(0, sb.length(), replaceVowels(reversedStr1Sb));
String finalStr1Sb = repeatAppendSB(sb, str2, 1000);
System.out.println("StringBuffer result: " + finalStr1Sb);
// 使用 StringBuilder 类型
StringBuilder sb2 = new StringBuilder(str1);
sb2.reverse();
String reversedStr1Sb2 = sb2.toString();
sb2 = new StringBuilder(reversedStr1Sb2);
sb2.replace(0, sb2.length(), replaceVowels(reversedStr1Sb2));
String finalStr1Sb2 = repeatAppendSB(sb2, str2, 1000);
System.out.println("StringBuilder result: " + finalStr1Sb2);
}
private static String replaceVowels(String str) {
return str.replaceAll("[aeiouAEIOU]", "*");
}
private static String repeatAppend(String str1, String str2, int times) {
String result = str1;
for (int i = 0; i < times; i++) {
result += str2;
}
return result;
}
private static String repeatAppendSB(StringBuffer sb, String str, int times) {
for (int i = 0; i < times; i++) {
sb.append(str);
}
return sb.toString();
}
private static String repeatAppendSB(StringBuilder sb, String str, int times) {
for (int i = 0; i < times; i++) {
sb.append(str);
}
return sb.toString();
}
public static void main(String[] args) {
StringOperation.performStringOperations("HelloWorld", "Java");
}
}
```
在这个例子中,我们创建了一个名为 `StringOperation` 的类,并在其中定义了 `performStringOperations` 方法。这个方法接收两个字符串参数 `str1` 和 `str2`,并分别使用 String、StringBuffer 和 StringBuilder 来完成指定的操作。由于性能原因,通常在实际应用中会优先选择 StringBuffer 或 StringBuilder,尤其是涉及到大量字符串拼接操作时。
阅读全文