Простое решение:
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);
}
Использование массива символов (обратите внимание на пустой аргумент String или null String!)
Другое решение использует StringBuilder (который обычно используется для выполнения строковой манипуляции, поскольку сама 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();
}
Здесь полная строка переворачивается, а затем часть, которая не должна быть обращена, заменяется подстрокой. ;)