如何将此函数转换为使用Stringbuilder,是否值得?

时间:2013-05-31 04:27:57

标签: android string stringbuilder

在下面的代码示例中将函数转换为使用StringBuilder使其更有效并且值得吗?和

如何将convertStringToInputString函数转换为使用StringBuilder? StringBuilder没有替换方法。

   // converts String to type of String that can be inserted into database, no space, no eof characters
public String convertStringToInputString(String standardString){
    String str = standardString.replace(" ", "XspaceX");
    String str2 = str.replace("\n", "XendoflineX");
    return str2;
}

  // fills table with information to be put into JSON String object
public void fillTable(){

    initialField.a[0] = convertStringToInputString("");
    initialField.a[1] = convertStringToInputString("");
    initialField.a[2] = convertStringToInputString("");
    initialField.a[3] = convertStringToInputString("");
    initialField.a[4] = convertStringToInputString("");
    initialField.a[5] = convertStringToInputString("");
    initialField.a[6] = convertStringToInputString("");
    initialField.a[7] = convertStringToInputString("");
    initialField.a[8] = convertStringToInputString("");
    initialField.a[9] = convertStringToInputString("");
    // continue with more 120 more lines like this

3 个答案:

答案 0 :(得分:1)

为什么不直接内联你的字符串操作?我认为它提高了可读性并避免了创建不必要的功能和对象。

initialField.a[0] = string.replace(" ","space").replace("\n","newline");

答案 1 :(得分:0)

我不明白你在做什么,但你可以像这样使用stringbuilder的追加方法:

public String toString(whateverType initialField) {
    StringBuilder sB = new StringBuilder();
    for (int i = 0; i<initialField.length; i++) {
        sB.append(initialField[i];
    }
    String str2 = sB.toString();
    return str2;
}

答案 2 :(得分:0)

你可以使用

StringBuilder.replace(int start, int end, String str)

这里

  

start - 开头索引,包括在内。

     

end - 结束索引,独占。

     

str - 将替换先前内容的字符串。

因此您可以使用StringBuilder.indexOf方法查找索引,然后使用上述方法替换它。