Ответ 1
Во-первых, вы не можете сделать это 1 так как a String
является неизменным в java.
Однако вы можете создать новый объект String с нужным значением, используя метод String#substring()
:
String s = "123456789";
String newString = s.substring(0, 3) + "foobar" + s.substring(3+3);
System.out.println(newString);
Если вы хотите достичь этого эффективно, вы можете избежать создания некоторых промежуточных строк, используемых методом concatinating и substring()
.
String s = "123456789";
StringBuilder sb = new StringBuilder();
char[] buff = s.toCharArray();
sb.append(buff , 0, 3).append("foobar");
sb.append(buff,3+3,buff.length -(3+3));
System.out.println(sb.toString());
Однако, если это не сделано в очень сложном цикле - вы, вероятно, должны игнорировать его и придерживаться первого и более читаемого решения.
(1) не так легко, это можно сделать с помощью отражения - но этого следует избегать.