简单的解决方案是:
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本身是不可变的,通常用于进行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会发生什么情况。