在Java中,我有一个字符串:

Jamaica

我想删除字符串的第一个字符,然后返回amaica

我该怎么做呢?


当前回答

可以使用String类的substring方法,该方法只接受开头索引,并返回以指定索引处的字符开始并扩展到字符串末尾的子字符串。

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

其他回答

另一个解决方案,你可以使用replaceAll和一些regex ^来解决你的问题。{1}(正则表达式演示)为例:

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

我遇到了这样一种情况,我不仅要删除第一个字符(如果它是#的话),还要删除第一组字符。

字符串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的情况,用if替换while,效果也很好。

使用substring()并给出要从前面修剪的字符数。

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

答:“amaica”

substring()方法返回一个新的String,其中包含当前包含在该序列中的字符的子序列。

子字符串从指定的开头开始,扩展到索引末尾的字符- 1。

它有两种形式。首先是

字符串子字符串(int FirstIndex)

这里,FirstIndex指定子字符串所在的索引 开始。此表单返回以。开始的子字符串的副本 FirstIndex并运行到调用字符串的末尾。

String子字符串(int FirstIndex, int endIndex)

这里,FirstIndex指定开始索引,endIndex指定 停止点。返回的字符串包含所有的字符 从开始索引到结束索引,但不包括结束索引。

例子

   String str = "Amiyo";
   // prints substring from index 3
   System.out.println("substring is = " + str.substring(3)); // Output 'yo'
public String removeFirst(String input)
{
    return input.substring(1);
}