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

Jamaica

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

我该怎么做呢?


当前回答

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

其他回答

const str = "牙买加".substring(1) console.log (str)

使用参数为1的substring()函数获取从位置1(第一个字符之后)到字符串末尾的子字符串(保留第二个参数默认为字符串的全长)。

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

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

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'

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

字符串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,效果也很好。