我试图取代个人' a'亚马逊'中的角色通过在Java中使用 .replace 方法。
我知道如何使用Strings来做到这一点,但是当我使用StringBuffers下面的代码时,我得到了一个' Amaazon'代替。
有没有人知道如何替换StringBuffer中的单个字符?
public class Hello {
public static void main(String argv[]) {
StringBuffer str1 = new StringBuffer("Amazon");
String str = new String("Rainforest");
int a = str.indexOf('o',2);
StringBuffer str2 = str1.replace(2, 2, "a");
System.out.println(a);
System.out.println(str2);
}
}
通过答案管理找到正确的方法,所以我想我发布了更正后的代码:
public class Hello {
public static void main(String argv[]) {
StringBuffer str1 = new StringBuffer("Amazon");
String str = new String("Rainforest");
int a = str.indexOf('o',2);
StringBuffer str2 = str1.replace(0, 1, "b");
System.out.println(a);
System.out.println(str2);
}
}
获得" bmazon"
的输出感谢回答者!
答案 0 :(得分:2)
这是一个错误的错误。 replace(...)
的前两个参数是要替换的子字符串的起始索引,包含,以及要替换的子字符串的结尾,独占。通过对两者使用相同的值,您实际上已经#34;替换"索引1和2之间没有任何内容。这种表达范围的包容性/排他性方式非常普遍。