-4

私は文字列値を取得しています

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

KSを外すことは可能ですか?BACJ のように見えるように文字列から

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

5 に答える 5

5

試すString a = A.substring(3);

于 2012-12-09T08:15:09.083 に答える
2

Apache commmons-langを使用StringUtils

String aString = "KS!BACJ";
String bString = StringUtils.removeStart("KS!");
于 2012-12-09T08:20:22.180 に答える
2

を使用して新しい文字列を作成できますString#substring(int idx)

あなたの場合はyourString.substring(3)、最初の 3 文字を除いた文字列を返します。

String newString = yourString.substring(3);

注:String不変であるため、「文字列から最初の 3 文字を削除する」ことはできません (少なくとも簡単なことではありません)。ただし、最初の 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);
于 2012-12-09T08:15:06.147 に答える
2

これを試して。

String.substring(String.indexOf("!")+1 , String.length());
于 2012-12-09T08:16:07.497 に答える