zoukankan      html  css  js  c++  java
  • C#面试题(String和StringBuilder区别)

    1.String和StringBuilder区别

    这是java面试题吗?第一次遇到这种面试题,查阅了一下MSDN,如下。

    String字符串是不可变,执行的字符串操作例程重复添加或删除操作到看起来是单个字符串可以精确显著的性能损失。 例如,下面的代码使用的随机数生成器使用 1000年个字符,范围从 0x0001 到 0x052F 中创建一个字符串。 尽管代码会使用字符串串联以将新字符追加到名为的现有字符串str,它实际创建一个新String为每个串联操作的对象。

    using System;
    using System.IO;
    using System.Text;
    
    public class Example
    {
       public static void Main()
       {
          Random rnd = new Random();
    
          string str = String.Empty;
          StreamWriter sw = new StreamWriter(@".StringFile.txt", 
                               false, Encoding.Unicode);
    
          for (int ctr = 0; ctr <= 1000; ctr++) {
             str += Convert.ToChar(rnd.Next(1, 0x0530)); 
             if (str.Length % 60 == 0)
                str += Environment.NewLine;          
          }                    
          sw.Write(str);
          sw.Close();
       }
    }

    你可以使用StringBuilder类而不是String类用于对字符串的值进行多个更改的操作。 与实例的不同String类,StringBuilder是可变的对象; 当你连接、 追加或删除从字符串的子字符串,在单个字符串上执行的操作。 完成后修改的值StringBuilder对象,可以调用其StringBuilder.ToString方法将其转换为字符串。 下面的示例替换String在前面的示例可用于连接到从 0x0001 到与 0x052F 的范围内的 1000 个随机字符StringBuilder对象。

    
    
    using System;
    using System.IO;
    using System.Text;
    
    public class Example
    {
       public static void Main()
       {
          Random rnd = new Random();
          StringBuilder sb = new StringBuilder();
          StreamWriter sw = new StreamWriter(@".StringFile.txt", 
                                             false, Encoding.Unicode);
    
          for (int ctr = 0; ctr <= 1000; ctr++) {
             sb.Append(Convert.ToChar(rnd.Next(1, 0x0530))); 
             if (sb.Length % 60 == 0)
                sb.AppendLine();          
          }                    
          sw.Write(sb.ToString());
          sw.Close();
       }
    }
    
    
    
    
    
  • 相关阅读:
    N皇后问题
    SDNU1349.快速幂入门
    SDNU1522.陆历川学数学
    埃氏筛
    快速幂
    string函数
    Golang介绍以及安装
    Promise解决回调地狱(多层调用问题)
    JavaScript动画相关
    ES6简单语法
  • 原文地址:https://www.cnblogs.com/mengxiangzhi/p/8660514.html
Copyright © 2011-2022 走看看