web-dev-qa-db-ja.com

文字列の最後の2文字を削除します

単純な文字列の最後の2文字05を削除するにはどうすればよいですか?

シンプル:

"Apple car 05"

コード

String[] lineSplitted = line.split(":");
String stopName = lineSplitted[0];
String stop =   stopName.substring(0, stopName.length() - 1);
String stopEnd = stopName.substring(0, stop.length() - 1);

「:」を分割する前の元の行

Apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16
46
TheBook

-2または-3を減算して、最後のスペースも削除します。

 public static void main(String[] args) {
        String s = "Apple car 05";
        System.out.println(s.substring(0, s.length() - 2));
    }

出力

Apple car
78
Ankur Singhal

String.substring(beginIndex、endIndex) を使用します

str.substring(0, str.length() - 2);

部分文字列は、指定されたbeginIndexから始まり、indexの文字まで続きます(endIndex-1)

20

次の方法を使用して、最後のn文字を削除できます-

public String removeLast(String s, int n) {
    if (null != s && !s.isEmpty()) {
        s = s.substring(0, s.length()-n);
    }
    return s;
}
4
masud.m

substring関数を使用できます。

s.substring(0,s.length() - 2));

最初の0で、substringに、文字列の最初の文字から開始する必要があると言い、s.length() - 2で、文字列が終了する前に2文字終了する必要があると言います。

substring関数の詳細については、次を参照してください。

http://docs.Oracle.com/javase/7/docs/api/Java/lang/String.html

1

例外処理を使用して次のコードを試すこともできます。ここにメソッドremoveLast(String s, int n)があります(実際にはmasud.mの答えの修正版です)。 String sと、このremoveLast(String s, int n)関数の最後から削除するcharの数を指定する必要があります。 charの数が最後から削除する必要がある場合、指定されたStringの長さよりも大きい場合、カスタムメッセージでStringIndexOutOfBoundExceptionをスローします-

public String removeLast(String s, int n) throws StringIndexOutOfBoundsException{

        int strLength = s.length();

        if(n>strLength){
            throw new StringIndexOutOfBoundsException("Number of character to remove from end is greater than the length of the string");
        }

        else if(null!=s && !s.isEmpty()){

            s = s.substring(0, s.length()-n);
        }

        return s;

    }
1
Razib

別の解決策は、ある種のregexを使用することです。

例えば:

    String s = "Apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16";
    String results=  s.replaceAll("[0-9]", "").replaceAll(" :", ""); //first removing all the numbers then remove space followed by :
    System.out.println(results); // output 9
    System.out.println(results.length());// output "Apple car"
0
nafas

最後の行を次のように変更するだけでほぼ正しいです:

String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.

または

最後の2行を置き換えることができます。

String stopEnd =   stopName.substring(0, stopName.length() - 2);
0
Saif