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

时间:2010-12-21 20:36:15

标签: java string substring

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

Jamaica

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

我该怎么做?

14 个答案:

答案 0 :(得分:298)

使用参数为1的{​​{3}}函数从位置1(第一个字符后)到字符串末尾(离开第二个字符串)获取子字符串参数out默认为字符串的全长。)

"Jamaica".substring(1);

答案 1 :(得分:58)

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

答案 2 :(得分:51)

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

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

答案:“amaica”

答案 3 :(得分:46)

在Java中,仅当前导字符是某个字符时才删除前导字符

使用Java三元运算符在删除之前快速检查您的角色是否存在。只有在存在时才会删除前导字符,如果传递空字符串,则返回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 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"

答案 4 :(得分:17)

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

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

答案 5 :(得分:11)

在Java中要理解的关键是字符串是不可变的 - 你无法改变它们。因此,谈论'从字符串中删除字符'是没有意义的。而是使用您想要的字符创建一个新字符串。此问题中的其他帖子为您提供了各种方法,但重要的是要了解这些不会以任何方式更改原始字符串。您对旧字符串的任何引用将继续引用旧字符串(除非您将它们更改为引用不同的字符串),并且不会受到新创建的字符串的影响。

这对性能有很多影响。每次“修改”字符串时,实际上都是在创建一个新的字符串,其中隐含了所有开销(内存分配和垃圾回收)。因此,如果您想对字符串进行一系列修改并且只关心最终结果(一旦您修改它们,中间字符串将会死亡),使用StringBuilder或StringBuffer可能更有意义。

答案 6 :(得分:9)

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

答案 7 :(得分:9)

你可以这样做:

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

或一般来说:

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

答案 8 :(得分:8)

substring() 方法返回一个新字符串,其中包含此序列中当前包含的字符的 子序列

子字符串 从指定的 start 开始,并延伸到 index end - 1 <处的字符< /强>

它有两种形式。第一个是

  1. String substring(int FirstIndex)
  2.   

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

    1. String substring(int FirstIndex, int endIndex)
    2.   

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

      实施例

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

答案 9 :(得分:4)

我遇到的情况是,我不仅要删除第一个字符(如果它是if (readMap != null && !readMap.isEmpty()) { // Swap the order, can't check empty if it's null. isWritten = true; isDeviceSideEnabled(); Platform.runLater(() -> { editDeviceContents.setDisable(false); vehicleId.setText(readMap.get(0)); vehicleName.setText(readMap.get(1)); deviceType.setText(readMap.get(2)); offboardBroker1.setText(readMap.get(3)); offboardBroker2.setText(readMap.get(4)); postfixQueue.setText(readMap.get(5)); pKIServer.setText(readMap.get(6)); lContentsSerialNo.setText(readMap.get(7)); }); } ,还要删除第一个字符。

#可能是起点,但我只想保留String myString = ###Hello World。这可以按照以下方式完成。

Hello World

对于OP的情况,将while (myString.charAt(0) == '#') { // Remove all the # chars in front of the real string myString = myString.substring(1, myString.length()); } 替换为while,它也能正常工作。

答案 10 :(得分:2)

另一种解决方案是,您可以使用replaceAll使用某些正则表达式^.{1}regex demo)来解决您的问题,例如:

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

答案 11 :(得分:1)

我删除主要字符的版本,一个或多个。例如,String str1 =&#34; 01234&#34;,当删除前导&#39;&#39;时,结果将是&#34; 1234&#34;。对于字符串str2 =&#34; 000123&#34;结果将是&#34; 123&#34;。对于String str3 =&#34; 000&#34;结果将为空字符串:&#34;&#34;。将数字字符串转换为数字时,此类功能通常很有用。与正则表达式(replaceAll(...))相比,此解决方案的优点是速度更快。这在处理大量字符串时很重要。

 public static String removeLeadingChar(String str, char ch) {
    int idx = 0;
    while ((idx < str.length()) && (str.charAt(idx) == ch))
        idx++;
    return str.substring(idx);
}

答案 12 :(得分:1)

您可以简单地使用 substring()

String myString = "Jamaica"
String myStringWithoutJ = myString.substring(1)

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

答案 13 :(得分:0)

##科特林 #它工作正常。

tv.doOnTextChanged { text: CharSequence?, start, count, after ->
            val length = text.toString().length
            if (length==1 && text!!.startsWith(" ")) {
                tv?.setText("")
            }
        }