私は、次のいずれかのような文字列がある場合:「AlphaSuffix」から「Alpha」を取得するためにJavaで最も簡潔な方法は何ですか?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
Bravo
にBravoSuffix
にAlpha
にAlphaSuffix
を変換するための最も簡潔なJava構文がどのようなものですか?
私は、次のいずれかのような文字列がある場合:「AlphaSuffix」から「Alpha」を取得するためにJavaで最も簡潔な方法は何ですか?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
Bravo
にBravoSuffix
にAlpha
にAlphaSuffix
を変換するための最も簡潔なJava構文がどのようなものですか?
String given = "AlphaSuffix"
String result = given.substring(0, given.length()-"Suffix".length());
さらに簡潔にするには、ユーティリティメソッドを作成します。ユーティリティメソッドで
public static String chop(String value, String suffix){
if(value.endsWith(suffix)){
return value.substring(0, value.length() - suffix.length());
}
return value;
}
、私はサフィックスがvalue
の終わりに実際にあるかどうかを確認するためのチェックを追加しました。
テスト:
String[] sufs = new String[] {
"AlphaSuffix",
"BravoSuffix",
"CharlieSuffix",
"DeltaSuffix"
};
for (int i = 0; i < sufs.length; i++) {
String s = chop(sufs[i], "Suffix");
System.out.println(s);
}
を与える:
Alpha
Bravo
Charlie
Delta
私はこの作業を見ることができません。あなたが行っていないインデックスを見つけるために逆方向にスキャンしない限り、接頭辞のサイズはわかりません。 –
probs :)私はあなたがやっているのとほとんど同じことを含む解決策を持っていましたが、indexOfを使用しました。これは欠陥があることに気付きました。 Ack :) –
は接尾辞を削除するには、単純な正規表現を使用します。
String myString = "AlphaSuffix";
String newString = myString.replaceFirst("Suffix$", "");
これは素晴らしい解決策だと思います! – Stefano
サフィックスは、すべての未知の/異なる場合のことができます。
を使用myString.replaceFirst("^(Alpha|Bravo|Charlie|Delta|...).*", "$1");
可能なのは固定リストか、2番目の大文字までですか? – rossum
@Coggle質問に答えましたか?承認された解決策をマークしていませんでした(緑色のチェック)。 –