Java - удаление первого символа строки

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

Jamaica

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

Как мне это сделать?

Ответ 1

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

"Jamaica".substring(1);

Ответ 2

public String removeFirstChar(String s){
   return s.substring(1);
}

Ответ 3

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

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

Ответ: "amaica"

Ответ 4

В 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"

Ответ 5

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

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

Ответ 6

Ключевое значение для понимания на Java - это то, что строки являются неизменными - вы не можете их изменить. Поэтому бессмысленно говорить об "удалении символа из строки". Вместо этого вы создаете новую строку с нужными вам символами. Другие сообщения в этом вопросе дают вам множество способов сделать это, но важно понимать, что они не меняют исходную строку каким-либо образом. Любые ссылки, которые у вас есть на старую строку, будут продолжать ссылаться на старую строку (если вы не измените их, чтобы ссылаться на другую строку) и не будут затронуты только что созданной строкой.

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

Ответ 7

public String removeFirst(String input)
{
    return input.substring(1);
}

Ответ 8

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

Подстрока начинается с указанного start и продолжается до символа в index end - 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'

Ответ 9

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

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

или вообще:

public String removeFirstChar(String str){
   return str.substring(1, title.length());
}

Ответ 10

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

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());
}

Ответ 11

Другое решение, вы можете решить свою проблему, используя replaceAll с некоторым регулярным выражением ^.{1} (демо-версия regex), например:

String str = "Jamaica";
int nbr = 1;
str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica

Ответ 12

Моя версия удаления ведущих символов, одна или несколько. Например, String str1 = "01234", при удалении ведущего "0" результат будет "1234". Для строки St2 = "000123" результат будет снова "123". А для String str3 = "000" результатом будет пустая строка: "". Такая функциональность часто полезна при преобразовании числовых строк в числа. Преимущество этого решения по сравнению с регулярным выражением (replaceAll (...)) заключается в том, что это намного быстрее. Это важно при обработке большого количества строк.

 public static String removeLeadingChar(String str, char ch) {
    int idx = 0;
    while ((idx < str.length()) && (str.charAt(idx) == ch))
        idx++;
    return str.substring(idx);
}