如果我有這樣的字符串爲以下之一:Java中最簡潔的方法是從「AlphaSuffix」中獲取「Alpha」?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
什麼是最簡潔的Java語法轉換成AlphaSuffix
Alpha
到BravoSuffix
到Bravo
?
如果我有這樣的字符串爲以下之一:Java中最簡潔的方法是從「AlphaSuffix」中獲取「Alpha」?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
什麼是最簡潔的Java語法轉換成AlphaSuffix
Alpha
到BravoSuffix
到Bravo
?
將其切斷。
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");
從固定列表或僅僅是第二個大寫字母開始的所有事情都可能存在嗎? – rossum
@Coggle你得到了你的問題的答案?您沒有標記可接受的解決方案(綠色檢查)。 –