Как заменить символы в строке в определенном месте в Java? - PullRequest
1 голос
/ 24 февраля 2012

Хорошо, у меня есть строка, позволяющая сказать «abcd».Теперь мне нужно иметь возможность надевать подобные браслеты вокруг определенного места.Например, если input равен 0 (как в индексе 0), то он возвращает строку, содержащую «[a] bcd», или, если input равен 2, то он возвращает «ab [c] d».Как бы я мог реализовать это Java?Есть ли уже метод в классе String, который может это сделать?

Ответы [ 5 ]

3 голосов
/ 24 февраля 2012

Вы можете сделать это легко с 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 голос
/ 24 февраля 2012

В классе 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);
1 голос
/ 24 февраля 2012

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

StringBuilder - классный класс, который помогает работать со строками. Он имеет метод insert(int index, char c), который вставляет данный символ в указанное место. Как показано, вы можете создать новую StringBuilder для вашей строки, вставить нужные фигурные скобки и преобразовать ее обратно в строку, используя метод toString().

0 голосов
/ 24 февраля 2012

Пройдите StringBuffer .У него есть такие методы.

0 голосов
/ 24 февраля 2012

Вы можете использовать StringBuffer для этого.

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