从Java中的String函数返回String构建器?

A.P*_*rov 3 java string stringbuilder function

我有以下程序,我必须将字符串附加到另一个字符串,我使用字符串构建器以标准方式执行.但是,ab即使在我转换它之后, 该功能也不允许我返回toString().我想问为什么?

 import java.util.*;

 public class prog1 {

        public static String k(int i) {
            String a = "1";
            StringBuilder ab = new StringBuilder();
            int pos = 1;
            if (i == 1) {
               return a;
            }
            else{
                pos++;
                String first = Integer.toString(pos);
                ab.append(a).insert(0,first);
                ab.toString();
                return ab;
            }
        }
        public static void main (String[]args){
                k(2);
            }
        }
Run Code Online (Sandbox Code Playgroud)

dav*_*xxx 5

你没有返回String返回的StringBuilder.toString():

ab.toString();
return ab;
Run Code Online (Sandbox Code Playgroud)

要获得返回的结果, ab.toString();必须将其分配给变量.然后你可以退货:

String s = ab.toString();
return s;
Run Code Online (Sandbox Code Playgroud)

或者在您的情况下,您可以直接返回结果,因为您不需要操作/转换返回的String:

return ab.toString();       
Run Code Online (Sandbox Code Playgroud)