Я ищу эффективный способ удаления последних n строк из строки. Эффективные, как быстродействующие, так и то, что не создает, тоже могут быть объектами. Поэтому хотелось бы держаться подальше от split(). Тем более, что иногда мои строки могут составлять несколько сотен или даже тысячи строк.Удалить последние n строк (предложений) в String в Java
Например, я получаю строку, как например:
This is a sample code line 1.
This is a sample code line 2.
Warm Regards,
SomeUser.
Последние 3 строки (пустая строка, «Теплые отношения» и «SomeUser») является то, что я пытаюсь получить избавиться от. Обратите внимание, что содержимое (включая последние 3 строки) не фиксировано.
Я думаю о том, чтобы сначала подсчитать строки, используя это решение: https://stackoverflow.com/a/18816371/1353174, а затем снова использовать другой подобный цикл, чтобы достичь позиции, которая является строкой -n, и выполнить подстроку до этой позиции.
Однако, просто отправляйте эту проблему здесь, чтобы узнать, есть ли другие и, возможно, более эффективные способы достижения этого. Также приветствуются внешние библиотечные решения (например, Apache Commons StringUtils).
Вы хотите держаться подальше от 'split', но ссылка вы указали, верхний ответ использует' split'. Может быть, потому, что он оптимизирован? Будет ли использование 'split' действительно быть узким местом в вашем пробме? – AntonH
Нет, ссылка, которую я предоставил, должна отвезти вас к ответу пользователем «Veger», и это не использует split. – kpatil
Вот почему я сказал ** верхний ответ **, а не ** ваш ответ **. – AntonH