Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Как заменить символ в строке по индексу? Java

В программе необходимо заменить один символ в строке. Пробовал методом replace(char, char), но там надо указать сам заменяемый символ, а мне нужно именно по индексу. На одном сайте нашел replace(int, int, string), который должен заменять строку начиная с первого индекса до последнего входной строкой, но подобная штука у меня не сработала. Можете ли подсказать рабочий метод? Программирую на Java

По дате
По рейтингу
Аватар пользователя
Гуру
8лет

Метод в лоб:
String s - это строка, в которой надо заменить символ. Пусть надо заменить на '.' символ под индексом 3.
Тогда вот пара способов:
№1
s = s.subString(0,3) + "." + s.subString(3+1);
№2
char[] c = s.toCharArray();
c[3] = '.';
s = new String(c);

Первый способ короче, но, мне кажется, ресурсов больше тратит. Ведь в 1 способе создаётся 3 новых объекта String. А во втором 1 объект char и 1 объект String.

По результатам тестов 2 способ работает в 3 с половиной раза быстрее, чем первый.

Аватар пользователя
Мастер
8лет

char[] string = text.toCharArray(); // Делаем из строки массив
string[index] = yourCharacter; // Изменяем символ строки используя индекс
text = new String(string); // Превращаем массив символов в строку и даем значение уже имеющейся

Аватар пользователя
Искусственный Интеллект
8лет

тебе ещё быстрее надо?

Удаленный ответ Ответ удалён