Java - 移除字符串的第一个字符

291

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

Jamaica

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

我该如何做到这一点?


如果这个问题得到足够多的赞同票,它将会非常热门。 - undefined
14个回答

445

const str = "Jamaica".substring(1)
console.log(str)

使用 substring() 函数并将参数设置为 1,可获取字符串从第二个字符开始(即第一个字符后面)到末尾的子串(省略第二个参数默认为字符串的全长)。

34
需要注意的是,这实际上并没有从字符串中删除字符——它会给你一个新的字符串,其中包含旧字符串的所有字符,除了第一个字符。实际上没有办法修改一个字符串。 - Chris Dodd
该链接似乎已经失效。请尝试使用以下链接:substring(int) - Christian Hoffmann
1
如果你想从一个字符串变量中移除前n个字符,你可以这样做:variable = variable.substring(n); - Mitulát báti

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

12
如果您要定义一个新函数,至少请选择一个适当的名称,例如 removeFirst() - moinudin

64

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

6
DRY: header = header.substring(header.startsWith("#") ? 1 : 0);DRY:header = header.substring(header.startsWith("#") ? 1 : 0); - Aaron Blenkush
4
使用正则表达式:header = header.replaceFirst("^#",""); 可以去掉文本开头的井号 # - Aaron Blenkush

61

使用substring()函数并指定你想要从前面截取的字符数。

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

答案:"牙买加"


这比传递两个参数给substring()函数的答案要好。我不确定为什么他们要把它复杂化。 - undefined

19
你可以使用String类的 substring方法,该方法接受一个起始索引并返回从指定索引处开始一直到字符串结尾的子字符串。
String str = "Jamaica";
str = str.substring(1);

15

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'

12

你可以这样做:

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

或者总的来说:

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

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

11
在Java中需要理解的关键点是,字符串是不可变的,无法更改它们。因此,从字符串中“删除字符”没有任何意义。相反,您可以创建一个仅包含所需字符的新字符串。本问题的其他帖子提供了许多这样做的方式,但重要的是要理解,这些方式不会以任何方式更改原始字符串。除非将引用更改为引用不同的字符串,否则对旧字符串的任何引用都将继续引用旧字符串,并且不受新创建的字符串的影响。
这对性能有许多影响。每次“修改”字符串时,实际上是创建一个新字符串,并带有所有隐含的开销(内存分配和垃圾回收)。因此,如果您想对字符串进行一系列修改,并且只关心最终结果(中间字符串一旦“修改”就死了),可能更有意义使用 StringBuilder 或 StringBuffer。

7
你可以简单地使用substring()函数。
String myString = "Jamaica"
String myStringWithoutJ = myString.substring(1)

该方法中的索引表示我们从哪里获取结果字符串,在这种情况下,我们获取它在第一个位置之后的字符串,因为我们不想要“Jamaica”中的“J”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接