标签: stringbuilder

string.Replace 或 stringBuilder.Replace()

我是 C# 新手,所以请原谅我的错误。

我想在每次调用该代码段时替换字符串的某些部分(每次调用 2-4 次)。我想知道就性能而言使用哪种方法更好:string.ReplacestringBuilder.Replace()

如果这段代码被并发调用 10.000 次会怎样?

c# string stringbuilder

2
推荐指数
1
解决办法
2053
查看次数

如何将最后一个字符串附加到 StringBuilder?

在 C# 中,我有一个StringBuilder sb我在 for 循环中多次附加到它。

是否有一种简单的方法StringBuilders可以吐出附加到它的最后一个字符串?

c# stringbuilder

2
推荐指数
1
解决办法
4991
查看次数

.net 如何将 stringbuilder 与字符串进行比较

在 vb.net(或 C#)中,我不知道如何将 stringbuilder 与字符串进行比较。我已经搜索了很多,但找不到答案。我必须编写自己的例程。没有更好的办法吗?

这不起作用:

Dim s As String = "abc"
Dim sb As New StringBuilder("abc")
If sb.Equals(s) Then
  Console.WriteLine(sb.ToString() + " DOES equal " + s)
Else
  Console.WriteLine(sb.ToString() + " does NOT equal " + s)
End If
Run Code Online (Sandbox Code Playgroud)

该代码的结果是:abc 不等于 abc

没有某种方法可以在不编写自己的例程的情况下将 stringbuilder 与 string 进行比较吗?很明显我遗漏了一些东西,因为我在任何地方都找不到这个问题。

vb.net string stringbuilder

2
推荐指数
1
解决办法
4101
查看次数

字符串生成器转 CSV

我有以下问题,我试图将内容从我的 StringBuilder 获取到我的 .csv 文件:

public String GetCSV()
            {
                System.Text.StringBuilder sb = new StringBuilder();

                sb.Append(m_ID.ToString());
                sb.Append(";");
                sb.Append(m_Starttime.ToString());
                sb.Append(";");
                sb.Append(m_EndTime.ToString());
                sb.Append(";");
                sb.Append(m_IsSerie.ToString());
                sb.Append(";");
                sb.Append(m_Title);
                sb.Append(";");
                sb.Append(m_Description);
                sb.Append(";");
                sb.Append(m_Lastchange.ToString());
                sb.Append(";");

                return sb.ToString();
                WriteCSV();
            }


        public void WriteCSV()
        {                
            string csvpath = @"c:\Temp\Kalender.csv";

            if (File.Exists(csvpath))
            {
                File.Delete(csvpath);
            }

                using (StreamWriter sw = File.CreateText(csvpath))
                {
                    foreach (string CalendarItem in CalendarItem)
                    {
                        if (sb.Length > 0)
                            sb.Append(", ");

                        sb.Append(part);
                    }

                }

        }
Run Code Online (Sandbox Code Playgroud)

现在我已经知道如何创建 CSV 文件了,但我不知道如何用来自 StringBuilder 的内容填充它,我确定这将由 foreach 循环处理,对吗?

c# csv stringbuilder streamwriter

2
推荐指数
1
解决办法
2万
查看次数

将一个字符表示为 utf-16 代码单元

StringBuilder builder = new StringBuilder();
builder.Append(" \(Nested \(parentheses\) dont need a backslash.\) \(But a single \\(parenthe)");
for(int i=0;i<builder.Length;i++)
{
    if(data[i] == "\" && data[i-1] == "\")
        data[i] += " ";
}
Run Code Online (Sandbox Code Playgroud)

如果字符串中有两个反斜杠。我需要在它们之间添加一个空格。在上面的代码中,我在 if 条件下收到错误“将字符表示为 utf-16 代码单元”。因为,我正在使用它创建一个 PDF 文件。提前致谢。

c# pdf stringbuilder utf-16 adobe-reader

2
推荐指数
1
解决办法
2万
查看次数

StringBuilder是否比连接十几个字符串慢?

StringBuilder是否比连接十几个字符串慢?编译器如何优化字符串连接,以便使用"+"连接十几个字符串将比StringBuilder更好?

从一本书(Ben Watson编写)中可以看出:

字符串连接:对于已知(在编译时)数量的字符串的简单连接,只需使用'+'运算符或String.Concat方法.这通常比使用StringBuilder更有效.string result = a + b + c + d + e + f; 在字符串数量可变且可能大于几十个之前,不要考虑StringBuilder.编译器将以减少内存开销的方式优化简单字符串连接.

.net c# string stringbuilder

2
推荐指数
1
解决办法
584
查看次数

使用 intelliJ 将字符串连接重构为 StringBuilder

我被指定对一个项目进行重构,我遇到了这种情况

 this.path = DESTINY + deploy.name() + FILE_SEPARATOR + delivery.getSystem().getCode()
      + FILE_SEPARATOR + delivery.getName() + FILE_SEPARATOR + delivery.getEnviroment().getName();
Run Code Online (Sandbox Code Playgroud)

我想将它重构为这样的:

StringBuilder tmpPath = new StringBuilder();
tmpPath.append(DESTINY);
tmpPath.append(deploy.name());
tmpPath.append(FILE_SEPARATOR);
tmpPath.append(delivery.getSystem().getCode());
tmpPath.append(FILE_SEPARATOR);
tmpPath.append(delivery.getName());
tmpPath.append(FILE_SEPARATOR);
tmpPath.append(delivery.getEnviroment().getName());
this.path = tmpPath.toString();
Run Code Online (Sandbox Code Playgroud)

或者

StringBuilder path = new StringBuilder();

...

this.path.append(DESTINY);
this.path.append(deploy.name());
this.path.append(FILE_SEPARATOR);
this.path.append(delivery.getSystem().getCode());
this.path.append(FILE_SEPARATOR);
this.path.append(delivery.getName());
this.path.append(FILE_SEPARATOR);
this.path.append(delivery.getEnviroment().getName());
Run Code Online (Sandbox Code Playgroud)

最快的方法是什么?

string stringbuilder refactoring intellij-idea

2
推荐指数
1
解决办法
936
查看次数

为什么 String、StringBuffer 和 StringBuilder 类使用字节数组而不是字符数组来存储字符串的字符?

一个字节不能容纳来自世界上各种语言的字符的 unicode。所以使用字节数组我们不能有不同语言的字符串。为什么这些类使用字节数组而不是字符数组?

更新:

class First
{
        public static void main(String[] args)
        {
                System.out.println();
                String s = "\u0935\u0902\u0926\u0947 \u092e\u093e\u0924\u0930\u092e\u094d";
                String s1 = "???? ??????";
                System.out.println(sb);
                System.out.println(sb1);
        }
}
Run Code Online (Sandbox Code Playgroud)

我认为上面的字符串每个字符需要两个字节。它们如何可以容纳在一个字节中?

java string stringbuilder stringbuffer java-9

2
推荐指数
1
解决办法
427
查看次数

如何在Android中每2个字符后将特殊符号连接为冒号

我想连接或附加特殊字符作为冒号在字符串中的每 2 个字符之后。

例如:原始字符串如下:

String abc =AABBCCDDEEFF;
Run Code Online (Sandbox Code Playgroud)

连接或追加冒号后如下:

  String abc =AA:BB:CC:DD:EE:FF;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我们如何在android中实现这一点。

提前致谢。

java string stringbuilder android kotlin

2
推荐指数
1
解决办法
940
查看次数

从 StringBuilder 转换为 String 的正确方法是什么?

从我在网上看到的情况来看,人们似乎建议使用 toString() 方法,但是文档指出:

创建此对象的字符串表示形式。默认表示取决于平台。在 java 平台上,它是类名、“@”和十六进制对象的哈希码的串联。

所以看起来使用这种方法可能会导致一些问题?

还有 mkString 和 result()。后者似乎最有意义。但我不确定这 3 种方法之间的区别是什么,以及是否应该使用 result() 。

stringbuilder scala

2
推荐指数
1
解决办法
79
查看次数