c# - 在不使用 StringBuffer.Append 或 StringBuilder.Append 的情况下在 Java/C# 中追加字符串

标签 c# java

在我最近参加的一次面试中,被问到的编程问题是这样的。编写一个将两个字符串作为输入的函数。输出应该是连接的结果。

条件:不应使用 StringBuffer.Append 或 StringBuilder.Append 或字符串对象进行连接;也就是说,他们要我实现 StringBuilder 或 StringBuffer 的 Append 函数工作原理的伪代码实现。

这是我做的:

    static char[] AppendStrings(string input, string append)
    {
        char[] inputCharArray = input.ToCharArray();
        char[] appendCharArray = append.ToCharArray();
        char[] outputCharArray = new char[inputCharArray.Length + appendCharArray.Length];
        for (int i = 0; i < inputCharArray.Length; i++)
        {
            outputCharArray[i] = inputCharArray[i];
        }
        for (int i = 0; i < appendCharArray.Length; i++)
        {
            outputCharArray[input.Length + i] = appendCharArray[i];
        }
        return outputCharArray;
    }

虽然这是一个可行的解决方案,但是否有更好的做事方式?

最佳答案

LINQ 合法吗?字符串 只是 可以被视为字符的枚举,因此它们可以与 LINQ 一起使用(即使涉及一些成本,请参阅注释):

string a = "foo";
string b = "bar";

string c = new string(a.AsEnumerable().Concat(b).ToArray());

或使用您的方法签名:

 static char[] AppendStrings(string input, string append)
 {
   return input.AsEnumerable().Concat(append).ToArray();
 }

关于c# - 在不使用 StringBuffer.Append 或 StringBuilder.Append 的情况下在 Java/C# 中追加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559150/

相关文章:

c# - 上传捕获的图像进行解析(解析对象)

c# - 从矩阵变换计算角度

java - 反序列化具有键变量 jackson map ObjectMapper 的 JSON 文件

java - 在 Hibernate 3.2 中使用连接池 (c3p0-0.9.1.2) 时出现异常且应用程序无法连接 MySqL 数据库?

java - 两个线程在远程服务器上同时运行

c# - 使用 EF 和 Dot Net Core 1(PostgreSQL 数据库)生成迁移时出错

c# - 字符串操作模式(C# 或其他语言)

c# - 为什么我应该同时进行单元测试和 Web 测试(而不仅仅是 Web 测试)?

java - 无法从外部 jar 文件加载 spring 配置 xml

java - 移动二维数组中的元素 - Java