문자열을 바꾸려면 부분 문자열을 잡고 새 접미사를 연결하면됩니다. 또한 정규 표현식 대신 endsWith
을 사용할 수 있습니다. IMHO 더 읽기 쉽습니다.
public String replaceSuffix (String target, String suffix, String replacement) {
if (!target.endsWith(suffix)) {
return target;
}
String prefix = target.substring(0, target.length() - suffix.length());
return prefix + replacement;
}
(특정 예를 들어)로 호출 :
String replaced = replaceSuffix("xyzabc_1_1", "_1", "_01_1");
에 따라
public String replaceSuffix (String target) {
if (!target.endsWith("_1")) {
return target;
}
return target.substring(0, target.length() - 2) + "_01_1";
}
그리고 단지 그것의 재미를 위해
, 여기 교체 다른 것들에 대한 더 재사용이 가능한 버전입니다 예상되는 입력이 있으면
str
에 null/empty/length 점검이 필요할 수도 있습니다.
감사합니다 ....하지만 우리가 원하는 문자열이 무엇인지를 교체 할 경우 다음
str1.replaceAll("_(\\d)$", "_0$1_$1")
테스트입니다 '_1'일뿐만 아니라 _2 또는 _3과 같은 정수가 될 수 있습니다. – user1114509그건 다소 다른 질문입니다. 당신은 아마도 이것에 기반한 솔루션을 만들 수 있습니다. 다양한 방법이 있습니다. 어쩌면 컬렉션을 반복하고 각각을 대체 할 수 있습니다. 또는 가장 잘 작동하는 경우 정규 표현식을 사용할 수도 있습니다. 그것은 당신에게 달려 있습니다. –