StringBuilder转换为字符串数组,如何进行转换?

3

我找不到任何关于这个问题的信息(这只是我的问题,但也许有人知道如何解决它)。

我有一个从资产文件夹读取的函数。

public String[] loadFromAsset() throws IOException
    {
        String TEMPBUFFER = null;
        String[] temp;
        temp = new String[60];
        int tempc = 0;
        BufferedReader bReader = new BufferedReader(new InputStreamReader(cont.getAssets().open("myquests.txt")));
        String line="";//  = bReader.readLine();
        StringBuilder sb = new StringBuilder();
        while (line != null) {

            line = bReader.readLine();
            sb.append(line).append("TABTAB");
            tempc++;
  }
         bReader.close();
    //convert SB to array here
         saveCount(tempc-1);
         return temp;

    }

需要返回类似于temp [50] = (1,2,3,4,5,......n + 1) 的字符串数组 但我找不到将stringBuilder转换为数组的方法:( 请问,也许有人知道吗?告诉我吧。
只需要将SB作为数组返回(如temp []),或在此处将SB转换为数组,例如sb->convert->temp []。

你为什么一开始要使用StringBuilder呢? - Blackbelt
你需要转换temp吗? - Nadir Belhaj
需要将 StringBuilder 转换为 temp(字符串数组)并使用它,因为这是最快的方法。 - Peter
相对于什么来说,它更快? - Blackbelt
如果我使用以下代码:temp[tempc]=line; //不知道为什么,但它比使用StringBuilder要慢且效果更差 - Peter
2个回答

2
将 StringBuilder 转换为字符串数组,请按照以下步骤进行:
string sbString = sb.toString();
String[] ary = sbString.split("TABTAB");

1

temp = sb.toString().split("TABTAB");会将字符串分割并返回每行的字符串数组。但我不完全确定这是否是您想要做的...


谢谢。我也尝试了一下,它可以工作。我来这里的时候你已经回答了,我只是写了"return sb.toString().split("TABTAB")。 - Peter
如果你只想返回结果的话,就不需要使用临时变量了,这点很好。 - TofferJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接