В Java у меня есть строка:
Jamaica
Я хотел бы удалить первый символ строки, а затем вернуть amaica
Как бы я это сделал?
Используйте substring()
функцию с аргументом, 1
чтобы получить подстроку с позиции 1 ( после первого символа) до конца строки (оставляя второй аргумент по умолчанию равным полной длине строки).
"Jamaica".substring(1);
источник
removeFirst()
.Используйте
substring()
и укажите количество символов, которые вы хотите обрезать спереди.Ответ: "амайка"
источник
В Java удаляйте ведущий символ, только если это определенный символ
Используйте троичный оператор Java, чтобы быстро проверить, присутствует ли ваш персонаж перед его удалением. Это удаляет начальный символ, только если он существует, если передана пустая строка, вернуть пустую строку.
Печать:
Java, удалите все экземпляры символа в любом месте строки:
Java, удалите первый экземпляр символа в любом месте строки:
источник
header = header.substring(header.startsWith("#") ? 1 : 0);
header = header.replaceFirst("^#","");
Вы можете использовать метод substring
String
класса, который принимает только начальный индекс и возвращает подстроку, которая начинается с символа по указанному индексу и продолжается до конца строки.источник
источник
Главное, что нужно понимать в Java, это то, что строки неизменны - вы не можете их изменить. Поэтому нет смысла говорить о «удалении символа из строки». Вместо этого вы создаете НОВУЮ строку с нужными вам символами. Другие посты в этом вопросе дают вам множество способов сделать это, но важно понимать, что они никак не изменяют исходную строку. Любые ссылки на старую строку будут по-прежнему ссылаться на старую строку (если вы не измените их для ссылки на другую строку) и не будут затронуты вновь созданной строкой.
Это имеет ряд последствий для производительности. Каждый раз, когда вы «модифицируете» строку, вы фактически создаете новую строку с учетом всех накладных расходов (выделение памяти и сборка мусора). Поэтому, если вы хотите внести ряд изменений в строку и заботиться только о конечном результате (промежуточные строки будут мертвыми, как только вы их «измените»), может иметь смысл использовать вместо них StringBuilder или StringBuffer.
источник
Вы можете сделать так:
или вообще:
источник
Метод substring () возвращает новую строку, содержащую подпоследовательность символов, которые в настоящее время содержатся в этой последовательности.
Подстрока начинается в Указанном
start
и продолжается до символа вindex end - 1
.У него есть две формы. Первый
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
пример
источник
Я столкнулся с ситуацией, когда мне пришлось удалить не только первый символ (если это был
#
, но и первый набор символов).String myString = ###Hello World
может быть отправной точкой, но я бы только хотел сохранитьHello World
. это можно сделать следующим образом.В случае
while
с OP замените на,if
и он работает также.источник
Другое решение, вы можете решить вашу проблему с
replaceAll
помощью некоторого регулярного выражения^.{1}
( regex demo ), например:источник
Моя версия удаления ведущих символов, одного или нескольких. Например, String str1 = "01234", при удалении ведущего '0', результатом будет "1234". Для String str2 = "000123" результат снова будет "123". А для String str3 = "000" результатом будет пустая строка: "". Такая функциональность часто бывает полезна при преобразовании числовых строк в числа. Преимущество этого решения по сравнению с регулярным выражением (replaceAll (...)) состоит в том, что оно намного быстрее. Это важно при обработке большого количества строк.
источник