F1.双指针,提升交换的速度

import java.util.*;


public class Solution {
    /**
     * 反转字符串
     * @param str string字符串 
     * @return string字符串
     */
    public String solve (String str) {
        // write code here
        //将字符串变为字节数组
        char[] chars = str.toCharArray();
        //定义left,right两个指针
        int left = 0;
        int right = chars.length - 1;
        for (int i = 0; left < right; i++) {
            char temp = chars[left];
            chars[left] = chars[right];
            chars[right] = temp;
            left++;
            right--;
        }
        return new String(chars);
    }
}

F2.循环遍历,并创建一个新的字符数组

import java.util.*;


public class Solution {
    /**
     * 反转字符串
     * @param str string字符串 
     * @return string字符串
     */
    public String solve (String str) {
        // write code here
        //字符串转换程数组
        char[] chars = str.toCharArray();
        //创建同样大小的字符数组
        char[] tarChars = new char[str.length()];
        //利用下标创建符合要求的字符数组
        for (int i = 0; i < chars.length; i++) {
            tarChars[i] = chars[chars.length - i - 1];

        }
        //返回字符串对象
        return String.copyValueOf(tarChars);
    }
}

F3.使用StringBuilder构造一个字符串

import java.util.*;


public class Solution {
    /**
     * 反转字符串
     * @param str string字符串 
     * @return string字符串
     */
    public String solve (String str) {
        // write code here
        //利用str创建一个stringbuilder对象
        StringBuilder stringBuilder = new StringBuilder(str);
        //使用Stringbuilder对象反转字符串
        StringBuilder res = stringBuilder.reverse();
        //返回一个字符串对象
        return res.toString();
    }
}