Java:从String中删除前三个字符

时间:2012-12-09 08:11:49

标签: java

我得到的字符串值为

String A = KS!BACJ
String B = KS!KLO
String C = KS!MHJU
String D = KS!GHHHY

是否可以移除KS!来自String,因此它看起来只有BACJ

public class Main {
    public static void main(String args[])  {
     String A = "KS!BACJ";
     if(A.startsWith("KS!"))
     {
     }
    }
}

5 个答案:

答案 0 :(得分:5)

尝试String a = A.substring(3);

答案 1 :(得分:2)

您可以使用String#substring(int idx)创建新字符串。

在你的情况下它是yourString.substring(3),它将返回一个没有前三个字符的字符串,例如:

String newString = yourString.substring(3);

注意:我们不能“从字符串中删除前三个字符”(至少不容易),因为String 不可变 - 但我们可以创建一个没有前3个字符的新字符串。


<强>加成:

要“从字符串中删除第一个字符” - 您将需要努力工作并使用反射。
建议不要使用,此处仅用于教育目的!

String A = "KS!BACJ";
Field offset = A.getClass().getDeclaredField("offset");
offset.setAccessible(true);
offset.set(A, (Integer)offset.get(A) + 3);
Field count = A.getClass().getDeclaredField("count");
count.setAccessible(true);
count.set(A, A.length()-3);
System.out.println(A);

答案 2 :(得分:2)

试试这个。

String.substring(String.indexOf("!")+1 , String.length());

答案 3 :(得分:2)

使用Apache commons-lang StringUtils

String aString = "KS!BACJ";
String bString = StringUtils.removeStart("KS!");

答案 4 :(得分:2)

请改用StringBuilder。它不会生成新的String对象。它只删除给定字符串中的前3个字母或更多字母。

String st = "HELLO";
StringBuilder str = new StringBuilder(st);
str.delete(0, 3);
Log.d("str", str.toString());

输出:

  

LO