Java – 删除string的第一个字符

在Java中,我有一个string:

Jamaica 

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

我将如何做到这一点?

使用参数为1substring()函数从位置1( 第一个字符之后)到string的结尾(将第二个参数的缺省值保留为string的全长)获取子string。

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

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

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

答:“amaica”

在Java中,只有在特定字符的情况下才能删除前导字符

使用Java三元运算符在删除之前快速检查您的angular色是否在那里。 这只会剥去前导字符,如果它存在,如果传递一个空白string,返回blankstring。

 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中任何位置的字符的所有实例:

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

Java,删除string中任何位置的第一个字符的实例:

 String b = "Cool"; b = b.replaceFirst("o",""); //variable 'b' contains the string "Col" 

您可以使用只接受开始索引的String类的子string方法,并返回以指定索引处的字符开头并延伸到string末尾的子string。

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

在Java中要理解的关键是string是不可改变的 – 你不能改变它们。 所以说“从string中删除一个字符”是没有意义的。 相反,你只用你想要的字符做一个新的string。 在这个问题中的其他post给你提供了多种方法,但重要的是要明白,这些不会以任何方式更改原始string。 对旧string的任何引用都将继续引用旧string(除非将其更改为引用不同的string),并且不会受到新创build的string的影响。

这对性能有很多影响。 每次你“修改”一个string,你实际上是创build一个新的string,所有的开销隐含(内存分配和垃圾收集)。 所以,如果你想对一个string进行一系列的修改而只关心最终的结果(只要你修改它们,中间string就会死掉),那么使用StringBuilder或StringBuffer可能更有意义。

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

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

子string从指定的开始处start并延伸到index end - 1处的字符index end - 1

它有两种forms。 首先是

  1. String substring(int FirstIndex)

这里,FirstIndex指定子string开始的索引。 这种forms返回从FirstIndex开始并运行到调用string结尾的子string的副本。

  1. String substring(int FirstIndex, int endIndex)

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

  String str="Amiyo"; // prints substring from index 3 System.out.println("substring is = " + str.substring(3)); // Output "yo' 

你可以这样做:

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

或一般:

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

我遇到了一个情况,我不仅要删除第一个字符(如果适合是一个# ,但是第一组字符。

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

另一个解决scheme,你可以使用replaceAll来解决你的问题,用一些正则expression式^.{1} ( regex demo )例如:

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