如何插入' *'之前' S'和' *'在' S'在StringBuffer java中

时间:2015-02-25 15:52:18

标签: java arrays stringbuffer

如何在*之后S* S之后插入StringBuffer textInFile= new StringBuffer ("Stanford "); public void convertToPTD(PlainTextDocument ptd) { if(ptd.textInFile.charAt(i)=='S') { ptd.textInFile.......??? } System.out.println(ptd.textInFile); return; } StringBuffer Java?

{{1}}

3 个答案:

答案 0 :(得分:3)

使用.replace方法。一个例子:

char c = '*';
String s = "S";
String str = "Stanford";
String rep = str.replace(s, c + s + c);

答案 1 :(得分:0)

您的第一步是找到“S”所在的索引列表。

您的第二步是,对于每个索引,将“S”替换为“* S *”。

以下是:

int i = -1;
while (true) {
    i = buffer.indexOf(i + 1, "S");
    if (i == -1) break; // No more occurrences of "S" are found
    buffer = buffer.replace(i, i + 1, "*S*");
}

如果在我们正在查看的字符串部分中没有出现我们想要的子字符串,则indexOf()返回-1。

答案 2 :(得分:0)

您可以递归使用它以满足您的需求。

下面是我在我的机器上测试过的一段代码。希望它对你有用:

StringBuffer str = new StringBuffer("WhereStanford");
str = str.replace(str.indexOf("S", 0), str.indexOf("S", 0)+1, "*S*");