Вставка в указанной позиции в строке в Java - PullRequest
2 голосов
/ 25 мая 2011

Прежде чем я планирую применить какой-то алгоритм, я хотел уточнить, доступно ли более простое решение в Java для этой конкретной проблемы.

String str = "Это тестовая строка";

Для приведенной выше строки

Необходимо вставить в поз. 3 - "---"
Имеетсявставить в поз 6 - "~~~~"

Как этого добиться?Используя stringBuffer, я могу использовать API, insert (pos, char []);

В первом цикле, если я вставлю в pos 3, второй pos (pos - 6) больше не будет истинным, чтобы получить правильный posво второй раз, не нужно добавлять ни одного из ранее добавленных символов.(т.е. 6 + 3 = 9).

Один из способов - отслеживать символы, которые я добавил.(громоздко)
Но, есть ли способ, которым я могу продолжать вставлять исходный текст в заданную позицию, а затем создавать его или что-то подобное!(в основном лучший подход)?

например, "Это тестовая строка"
1-й цикл - Thi --- s - тестовая строка
2-й цикл - Это тест ~~~~ sastring

наконец, o / p - это тестовая строка Thi --- si ~~~~.

Это часть большей проблемы, прежде чем я подойду к этому, хотел прояснить это.

Ответы [ 3 ]

8 голосов
/ 25 мая 2011

Я не уверен, что это то, что вы ищете, но вы можете начать с конца, таким образом, индексы будут по-прежнему верны:

e.g. "This is a test string"
1st loop- This i~~~~s a test string
                ^index 6
2nd loop- Thi---s i~~~s a test string
             ^index 3

Мне кажется, это удобно и при изменении массивов ...

5 голосов
/ 25 мая 2011

Как насчет продолжения назад?Сначала вставьте наибольший индекс.

0 голосов
/ 25 мая 2011

Предположим, если вы хотите вставить в 3 местах, в 3, в 6 и в 1.

Вот что я сделаю:

  1. Сортировка индексов в порядке убывания
  2. Затем вставьте.

Индексы будут одинаковыми для каждой следующей вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...