単純な文字列の最後の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
-2
または-3
を減算して、最後のスペースも削除します。
public static void main(String[] args) {
String s = "Apple car 05";
System.out.println(s.substring(0, s.length() - 2));
}
出力
Apple car
String.substring(beginIndex、endIndex) を使用します
str.substring(0, str.length() - 2);
部分文字列は、指定されたbeginIndexから始まり、indexの文字まで続きます(endIndex-1)
次の方法を使用して、最後のn
文字を削除できます-
public String removeLast(String s, int n) {
if (null != s && !s.isEmpty()) {
s = s.substring(0, s.length()-n);
}
return s;
}
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
例外処理を使用して次のコードを試すこともできます。ここにメソッド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;
}
別の解決策は、ある種の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"
最後の行を次のように変更するだけでほぼ正しいです:
String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.
または
最後の2行を置き換えることができます。
String stopEnd = stopName.substring(0, stopName.length() - 2);