


Как заменить символ в строке по индексу? Java
В программе необходимо заменить один символ в строке. Пробовал методом replace(char, char), но там надо указать сам заменяемый символ, а мне нужно именно по индексу. На одном сайте нашел replace(int, int, string), который должен заменять строку начиная с первого индекса до последнего входной строкой, но подобная штука у меня не сработала. Можете ли подсказать рабочий метод? Программирую на Java
Метод в лоб:
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 с половиной раза быстрее, чем первый.
char[] string = text.toCharArray(); // Делаем из строки массив
string[index] = yourCharacter; // Изменяем символ строки используя индекс
text = new String(string); // Превращаем массив символов в строку и даем значение уже имеющейся
тебе ещё быстрее надо?