相关疑难解决方法(0)

循环后清除字符串缓冲区/构建器

如何在循环后清除Java中的字符串缓冲区,以便下一次迭代使用清除字符串缓冲区?

java string buffer

112
推荐指数
6
解决办法
14万
查看次数

在循环中重用StringBuilder会更好吗?

我有关于使用StringBuilder的性能相关问题.在一个很长的循环中,我正在操纵a StringBuilder并将其传递给另一个方法,如下所示:

for (loop condition) {
    StringBuilder sb = new StringBuilder();
    sb.append("some string");
    . . .
    sb.append(anotherString);
    . . .
    passToMethod(sb.toString());
}
Run Code Online (Sandbox Code Playgroud)

StringBuilder在每个循环周期实例化是一个很好的解决方案吗?并且更好地调用删除,如下所示?

StringBuilder sb = new StringBuilder();
for (loop condition) {
    sb.delete(0, sb.length);
    sb.append("some string");
    . . .
    sb.append(anotherString);
    . . .
    passToMethod(sb.toString());
}
Run Code Online (Sandbox Code Playgroud)

java string performance stringbuilder

97
推荐指数
6
解决办法
7万
查看次数

StringBuilder - 重置或创建新的

我有一个条件,StringBuilder保持存储与大平面文件(100的MB)模式匹配的行.但是在达到条件后,我将StringBuilder varialble的内容写入文本文件.

现在我想知道是否应该通过重置对象来使用相同的变量 - >

stringBuilder.delete(0,stringBuilder.length())
Run Code Online (Sandbox Code Playgroud)

要么

stringBuilder=new StringBuilder();
Run Code Online (Sandbox Code Playgroud)

请提出一下,就性能和OOM问题而言,您认为哪种方式更好.

java stringbuilder

22
推荐指数
3
解决办法
3万
查看次数

垃圾友好替代substring()

我有一个管道分隔文件,我解析它以获取系统选项.环境对堆分配很敏感,我们正在尝试避免垃圾回收.

下面是我用来解析管道分隔字符串的代码.该函数调用约35000次.我想知道是否有更好的方法不能创造更多的内存流失.

static int countFields(String s) {
    int n = 1;
    for (int i = 0; i < s.length(); i++)
        if (s.charAt(i) == '|')
            n++;

    return n;
}

static String[] splitFields(String s) {
    String[] l = new String[countFields(s)];

    for (int pos = 0, i = 0; i < l.length; i++) {
        int end = s.indexOf('|', pos);
        if (end == -1)
            end = s.length();
        l[i] = s.substring(pos, end);
        pos = end + 1;
    }

    return l;
}
Run Code Online (Sandbox Code Playgroud)

编辑1,关于java版本:

出于商业原因,我们坚持使用JDK 1.6.0_25.

编辑2关于String和String …

java string garbage-collection

9
推荐指数
2
解决办法
2487
查看次数

android清除字符串生成器

可能的重复:
如何清除/清空 Java Stringbuilder

我正在向字符串添加值,然后在文本视图中显示它,但是当我刷新页面时,它不会先清除字符串。
它只是不断地添加它。

有没有办法清除android中的字符串生成器?

到目前为止我尝试过的

StringBuilder sb = new StringBuilder();
sb.delete(0,sb.length());
for (String s : awayScores)
{
    sb.append(s);
    sb.append("\n");
}

StringBuilder sb2 = new StringBuilder();
sb2.delete(0,sb2.length());
for (String h : homeScores)
{
    sb2.append(h);
    sb2.append("\n");
}

 String awayeve = sb.toString();
 String homeeve = sb2.toString();

Log.v("home", "homeeve" + homeeve);
Log.v("home", "awayeve" + awayeve);
Run Code Online (Sandbox Code Playgroud)

java stringbuilder android

0
推荐指数
1
解决办法
3274
查看次数