题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。
输入 :cba
返回值 :abc
我们最容易想到:逆向遍历字符串实现反转
实现:
public static String solve(String str) {
if (null == str || str.length() == 0 || str.length() == 1) {
return str;
}
StringBuilder strBuilder = new StringBuilder();
for (int i = str.length() - 1; i >= 0; i--) {
strBuilder.append(str.charAt(i));
}
return strBuilder.toString();
}
使用双指针实现字符串反转
public static String reverseString(String str) {
if (str == null || str.length() == 0 || str.length() == 1) {
return str;
}
char[] chars = str.toCharArray();
//指向数组首元素
int start = 0;
//指向数组尾元素
int end = chars.length - 1;
char temp;
while (start < end) {
//字符互换
temp = chars[start];
chars[start] = chars[end];
chars[end] = temp;
//移动索引位置
start++;
end--;
}
return String.valueOf(chars);
}
public static void main(String[] args) {
String str = "gfedcba";
System.out.println("字符串:" + str);
System.out.println("反转后:" + reverseString(str));
}
字符串:gfedcba
反转后:abcdefg
使用StringBuilder中reverse()对字符串进行反转
api真香
public String solve(String str) {
if (null == str || str.length() == 0 || str.length() == 1) {
return str;
}
return new StringBuilder(str).reverse().toString();
}