哪种方法更好,并在以下两种方法之间进行优化?

Pra*_*ant 1 java

以下是使用调用API方法反转字符串的两种方法.请说明哪种方法更合理,并有正当理由

public String functionOne(String str){
    char arr[] = str.toCharArray();
    int limit = arr.length/2;
    for (int i = arr.length-1, j = 0; j < limit; i--, j++) {
        char c = arr[i];
        arr[i] = arr[j];
        arr[j] = c;
    }
    return new String(arr);
}

public String functionTwo(String str) {
    StringBuilder strBuilder = new StringBuilder();
    char[] strChars = str.toCharArray();

    for (int i = strChars.length - 1; i >= 0; i--) {
        strBuilder.append(strChars[i]);
    }

    return strBuilder.toString();
}
Run Code Online (Sandbox Code Playgroud)

实际上,当我在长度为100000的字符串上运行我的代码时,第二次接近第二次接近时间.通过使用System.currentTimeMillis(),我发现第一种方法的执行差异为1,第二种方法的执行差异为2.

aka*_*IOT 6

这个怎么样:

new StringBuilder("some string").reverse().toString();
Run Code Online (Sandbox Code Playgroud)

已经实施的API可能会使用最有效的方式.