나는 다음 중 하나와 같은 문자열이있는 경우 :"AlphaSuffix"에서 "Alpha"를 얻으려면 Java에서 가장 간결한 방법은 무엇입니까?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
Bravo
에 BravoSuffix
에 Alpha
에 AlphaSuffix
변환하는 가장 간결한 자바 구문은 무엇입니까?
나는 다음 중 하나와 같은 문자열이있는 경우 :"AlphaSuffix"에서 "Alpha"를 얻으려면 Java에서 가장 간결한 방법은 무엇입니까?
AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix
Bravo
에 BravoSuffix
에 Alpha
에 AlphaSuffix
변환하는 가장 간결한 자바 구문은 무엇입니까?
잘라 내기.
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
이 작업을 볼 수 없습니다. 색인을 찾기 위해 거꾸로 스캔하지 않으면 프리픽스의 크기를 알 수 없습니다. –
No probs :) 나는 당신이하는 것과 거의 같은 일을하는 해결책을 가지고 있었지만 indexOf를 사용했다. 감사 : –
사용을 간단한 정규 표현식을 접미사를 삭제 :
String myString = "AlphaSuffix";
String newString = myString.replaceFirst("Suffix$", "");
나는 이것이 좋은 해결책이라고 생각한다! – Stefano
접미사가 알 수없는/모든 다른 경우 당신이 할 수있는
을 사용하십시오.myString.replaceFirst("^(Alpha|Bravo|Charlie|Delta|...).*", "$1");
고정 된 목록이나 두 번째 대문자까지만 가능합니까? – rossum
@Coggle 질문에 대한 답변을 얻었습니까? 허용 된 솔루션을 표시하지 않았습니다 (녹색 확인). –