簡単な解決策は:
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が空またはnullの場合はどうなるかを検討してください。