0

在下面的代码示例中,将函数转换为使用 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
4

3 回答 3

1

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

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

于 2013-05-31T05:11:43.940 回答
0

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

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;
}
于 2013-05-31T04:32:38.677 回答
0

您可以使用

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

这里

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

end - 结束索引,独占。

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

所以你可以使用StringBuilder.indexOf方法找到索引然后用上面的方法替换它。

于 2013-05-31T04:34:35.813 回答