Java – 删除string的第一个字符
在Java中,我有一个string:
Jamaica
我想删除string的第一个字符,然后返回amaica
我将如何做到这一点?
使用参数为1
的substring()
函数从位置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。 首先是
-
String substring(int FirstIndex)
这里,FirstIndex指定子string开始的索引。 这种forms返回从FirstIndex开始并运行到调用string结尾的子string的副本。
-
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