前言
有一些面试官可能在面试Java基础的时候,让你说一下字符串反转,会手撕代码,常见的是四种方法。
一、使用StringBuilder的reverse()方法
个人觉得这是最简单的一种,调用一下自身的方法就可以完成了。
static String reverseElement1(String element){
StringBuilder result = new StringBuilder(element);
return result.reverse().toString();
}
二、使用字符串数组
使用字符串数组,实现从尾部开始逐个逆序放入字符串,这样也可以实现字符串的反转。
static String reverseElement2(String element){
//String转换成字符数组
char[] charArray = element.toCharArray();
//定义一个空字符串
StringBuilder result = new StringBuilder();
for (int i = charArray.length - 1; i >= 0; i--){
result.append(charArray[i]);
}
return result.toString();
}
三、使用String的CharAt方法
使用String的CharAt方法取出字符串中的各个字符,然后插入到字符串中。调用StringBuilder的insert()方法进行操作。
static String reverseElement3(String element) {
StringBuilder result = new StringBuilder();
int length = element.length();
for (int i = 0; i < length; i++) {
result.insert(0, element.charAt(i));
}
return result.toString();
}
四、使用String的CharAt方法
使用递归的方式实现字符串反转。
static String reverseElement4(String element) {
//首先判断一下字符串是不是为空和其长度
if (element == null || element.length() <= 1) {
return element;
} else {
return reverseElement4(element.substring(1)) + element.charAt(0);
}
}
五、Demo地址
GitHub地址:https://github.com/i-kang/ReverseElement