我得到的字符串值为
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!"))
{
}
}
}
答案 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