Java - удаление первого символа строки - PullRequest
190 голосов
/ 21 декабря 2010

В Java у меня есть строка:

Jamaica

Я хотел бы удалить первый символ строки и затем вернуть amaica

Как бы я это сделал?

Ответы [ 12 ]

301 голосов
/ 21 декабря 2010

Используйте функцию substring() с аргументом 1, чтобы получить подстроку из позиции 1 ( после первого символа) до конца строки (оставляя второй аргумент out по умолчанию равен полной длине строки).

"Jamaica".substring(1);
59 голосов
/ 21 декабря 2010
public String removeFirstChar(String s){
   return s.substring(1);
}
52 голосов
/ 20 февраля 2014

Используйте substring() и укажите количество символов, которое вы хотите обрезать спереди.

String value = "Jamaica";
value = value.substring(1);

Ответ: "amaica"

46 голосов
/ 14 января 2013

В Java удаляйте начальный символ, только если он является определенным символом

Используйте троичный оператор Java, чтобы быстро проверить, присутствует ли ваш символ перед его удалением.Это удаляет начальный символ, только если он существует, если передана пустая строка, вернуть пустую строку.

String header = "";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

header = "foobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

header = "#moobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);

Отпечатки:

blankstring
foobar
moobar

Java, удалить все экземпляры символа в любом месте строки:

String a = "Cool";
a = a.replace("o","");
//variable 'a' contains the string "Cl"

Java, удалить первый экземплярсимвол в любом месте строки:

String b = "Cool";
b = b.replaceFirst("o","");
//variable 'b' contains the string "Col"
17 голосов
/ 21 декабря 2010

Вы можете использовать метод substring класса String, который принимает только начальный индекс и возвращает подстроку, которая начинается с символа по указанному индексу и продолжается до конца строки.

String str = "Jamaica";
str = str.substring(1);
11 голосов
/ 23 декабря 2010

Главное, что нужно понять в Java, это то, что строки неизменяемы - вы не можете их изменить.Поэтому нет смысла говорить о «удалении символа из строки».Вместо этого вы создаете НОВУЮ строку с нужными вам символами.Другие посты в этом вопросе дают вам множество способов сделать это, но важно понимать, что они никак не меняют исходную строку.Любые ссылки на старую строку будут по-прежнему ссылаться на старую строку (если вы не измените их для ссылки на другую строку) и не будут затронуты вновь созданной строкой.

Это имеет номерпоследствия для производительности.Каждый раз, когда вы «модифицируете» строку, вы фактически создаете новую строку с учетом всех накладных расходов (выделение памяти и сборка мусора).Поэтому, если вы хотите внести ряд изменений в строку и заботиться только о конечном результате (промежуточные строки будут мертвыми, как только вы их «измените»), может иметь смысл использовать вместо них StringBuilder или StringBuffer.

9 голосов
/ 21 июня 2016

вы можете сделать так:

String str="Jamaica";
str=str.substring(1, title.length());
return str;

или вообще:

public String removeFirstChar(String str){
   return str.substring(1, title.length());
}
9 голосов
/ 21 декабря 2010
public String removeFirst(String input)
{
    return input.substring(1);
}
8 голосов
/ 18 ноября 2015

substring () метод возвращает новую строку, содержащую подпоследовательность символов, содержащихся в настоящее время в этой последовательности.

Подстрока начинается с указанного start и продолжается до символа в index end - 1.

Имеет две формы. Первый

  1. String substring(int FirstIndex)

Здесь FirstIndex указывает индекс, по которому подстрока будет начать. Эта форма возвращает копию подстроки, которая начинается в FirstIndex и выполняется до конца вызывающей строки.

  1. String substring(int FirstIndex, int endIndex)

Здесь FirstIndex указывает начальный индекс, а endIndex указывает остановочный пункт. Возвращаемая строка содержит все символы от начального индекса до конечного индекса, но не включая его.

Пример

    String str="Amiyo";
   // prints substring from index 3
   System.out.println("substring is = " + str.substring(3)); // Output "yo'
4 голосов
/ 31 января 2017

Я столкнулся с ситуацией, когда мне пришлось удалить не только первый символ (если это был #, но и первый набор символов.

String myString = ###Hello World может быть отправной точкой, но я бы хотел оставить только Hello World. это можно сделать следующим образом.

while (myString.charAt(0) == '#') { // Remove all the # chars in front of the real string
    myString = myString.substring(1, myString.length());
}

В случае OP замените while на if, и оно работает также.

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