간단한 해결책은 다음과 같습니다.
public String frontBack(String str) {
if (str == null || str.length() == 0) {
return str;
}
char[] cs = str.toCharArray();
char first = cs[0];
cs[0] = cs[cs.length -1];
cs[cs.length -1] = first;
return new String(cs);
}
문자형 배열 사용하기 (빈 문자열 또는 null 문자열 인수를 조심하십시오!)
다른 솔루션은 StringBuilder를 사용합니다 (String 자체는 불변이므로 일반적으로 String 조작을 수행하는 데 사용됩니다).
public String frontBack(String str) {
if (str == null || str.length() == 0) {
return str;
}
StringBuilder sb = new StringBuilder(str);
char first = sb.charAt(0);
sb.setCharAt(0, sb.charAt(sb.length()-1));
sb.setCharAt(sb.length()-1, first);
return sb.toString();
}
또 다른 접근법 (실제 사용보다 더 많은 지시 사항)은 다음과 같습니다.
public String frontBack(String str) {
if (str == null || str.length() < 2) {
return str;
}
StringBuilder sb = new StringBuilder(str);
String sub = sb.substring(1, sb.length() -1);
return sb.reverse().replace(1, sb.length() -1, sub).toString();
}
여기에서 완전한 문자열이 반전되고 반전되어서는 안되는 부분이 부분 문자열로 대체됩니다. ;)
str.charAt(str.length() - 1)
으로 문자열의 마지막 문자는 대체로 그렇습니다 . 그러나 str이 비어 있거나 어떤 경우에 발생하는지 고려하십시오.