Как заменить строку в определенной позиции - PullRequest
12 голосов
/ 10 февраля 2010

Есть ли способ заменить часть строки в заданной позиции в сценарии Java. Например, я хочу заменить 00 в столбце часов на 12 в приведенной ниже строке. substring - от 13 до 15.

Mar 16, 2010 00:00 AM 

Ответы [ 6 ]

19 голосов
/ 10 февраля 2010

Ниже приведен один вариант:

var myString = "Mar 16, 2010 00:00 AM";

myString = myString.substring(0, 13) + 
           "12" + 
           myString.substring(15, myString.length);

Обратите внимание, что если вы собираетесь использовать это для манипулирования датами, рекомендуется вместо этого использовать некоторые методы манипуляции с датами, например, такие как в DateJS .

6 голосов
/ 10 февраля 2010

Регулярный подход

"Mar 16, 2010 00:00 AM".replace(/(.{13}).{2}/,"$112")
Mar 16, 2010 12:00 AM
3 голосов
/ 10 февраля 2010

, если это всегда 00: в часах,

Вы можете просто заменить 00: на 12:

с использованием replace(),

Если вам не нужно, найдите indexOf :,

, а затем заменить 2 цифры на 12.

3 голосов
/ 10 февраля 2010

Один из вариантов будет

>>> var test = "Mar 16, 2010 00:00 AM";
>>> test.replace(test.substring(13,15),"12")
1 голос
/ 10 февраля 2010

Вы можете использовать метод replace () вместе с indexOf () строки в Javascript.

0 голосов
/ 05 марта 2019

Другой креативной идеей может быть преобразование в массив splice и преобразование его обратно в строку.

let str = "Mar 16, 2010 00:00 AM";
let arr = str.split("");
arr.splice(13,2,"1","2");
str = arr.join("");
...