如何在Java中的某个位置替换String中的字符?

时间:2012-02-24 14:24:31

标签: java string indexing char

好的,所以我有一个字符串让我们说“abcd”。现在我需要能够在某个位置附近放置像[]这样的支撑。例如,如果输入为0(如索引0中),则返回保存“[a] bcd”的字符串,或者如果输入为2,则返回“ab [c] d”。我将如何实现这一点是Java? String类中是否有可以执行此操作的方法?

5 个答案:

答案 0 :(得分:3)

您可以使用StringBuilder轻松完成此操作:

// Note that this will need to copy things *twice*, which may be less
// efficient than just calling replace once, but it's cleaner
StringBuilder builder = new StringBuilder(text); 
builder.insert(index + 1, ']');
builder.insert(index, '[');
String newText = builder.toString();

答案 1 :(得分:1)

myString = new StringBuilder(myString).insert(2, '[').insert(4,']').toString();

StringBuilder是一个很酷的类,有助于使用字符串。它具有insert(int index, char c)方法,可将给定字符插入指定位置。如图所示,您可以为字符串创建新的StringBuilder,插入所需的大括号,然后使用toString()方法将其转换回String。

答案 2 :(得分:1)

String类中有一个replace方法可以做到。 StringBuffer和StringBuffer也有这些方法。

        int index = 0;
        String input = "abcd";
        //System.out.println(Character.toString(input.charAt(index)));
        //System.out.println("["+input.charAt(index)+"]");
        String output = input.replace(Character.toString(input.charAt(index)), "["+input.charAt(index)+"]");
        System.out.println(output);

答案 3 :(得分:0)

您可以使用StringBuffer执行此操作。

String st = new String("abcd");
st = new StringBuffer(st).insert(index+1,"]").insert(index, "[").toString();

答案 4 :(得分:0)

浏览StringBuffer。它有这样的方法。