首页 > 其他分享 >String 和 StringBuilder

String 和 StringBuilder

时间:2023-04-03 23:02:25浏览次数:32  
标签:20 String StringBuilder stringBuilder1 字符串 添加 string

String 类型在C#中用于保存字符,属于引用类型,一旦创建就不能再修改。

  1.在创建新字符串时,会在内存中重新分配空间。

    string str="hello world";

  2.把一个字符串赋值给另外一个字符串,也会重新分配空间。

    string str1=str;

  3.修改字符串的值,也会重新分配空间。

    string str1="hello";

    str1="HELLO";

    注:重新赋值之后,原来的 hello 已经废弃,但是还占着内存空间,需要使用GC垃圾回收器,让GC回收不再使用变量

  4.多个字符串合并,也会重新分配空间

    string str2 = str + str1;

 

StringBuilder 类型表示【可变字符字符串】类型,其中的字符可以被改变,增加,删除,并且可以自由扩展大小。

  StringBuilder strigBuilder =new StringBuilder();//创建StringBuilder

  strigBuilder.Append("hello");//添加字符串

  strigBuilder.Remove(1, 2);//从下标为1开始移除两个字符

  1.一个StringBuilder 默认容量是16,当向一个已满的StringBuilder添加字符时,其会自动申请内存进行扩容。

  扩容规律:扩容没有超过20,就扩容20,超过20就超出多少扩容多少

  StringBuilder stringBuilder1=new StringBuilder("helloworldhelloworld");//初始数20

   情况1: stringBuilder1.Append("helloworld");//添加10

       Console.WriteLine(stringBuilder1.Capacity);//输出40

  情况2:  stringBuilder1.Append("helloworldhelloworldhello");//添加25

      Console.WriteLine(stringBuilder1.Capacity);//输出45

  //在执行情况1或情况2之后再次进行添加操作则会将空间翻倍

  stringBuilder10.Append("helloworldhelloworldhelloworld");//添加30
  Console.WriteLine(stringBuilder1.Capacity);//输出80

  2.可以重新赋值。

    StringBuilder strigBuilder2 =new StringBuilder();

 

标签:20,String,StringBuilder,stringBuilder1,字符串,添加,string
From: https://www.cnblogs.com/nsy101010/p/17284797.html

相关文章

  • 实现一个函数用来解析 URL 的 querystring
    实现如下效果consturl="https://xxxx.com?a=3&b=4&c=5&name=1+1=2";//解析后得到qs如下constqs={a:3,b:4,c:5,name:'1+1=2'};纯碎使用 javascript 完成解析函数,而不利用浏览器DOM特性API,代码如下所示,细节在注释中体现functionparse(url......
  • replace sub string
    function(replaceAllSubs)set(replaced)set(tail)math(EXPRtail"${ARGC}-1")foreach(iRANGE1${tail})set(cur)list(GETARGV${i}cur)string(REPLACE"aa""bb"rep${cur})......
  • Java-String的常用方法总结
    一、String类  String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能继承。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。二、String类构造方法  1、publicString()  无参构造方法,用来创......
  • Go语言入门2(流程控制,string)
    流程控制选择结构(分支语句)​ 因为switch只能匹配固定值,推荐使用if-else做条件筛选if-else判断packagemainimport"fmt"funcmain(){ vartmpAint fmt.Scanln(&tmpA) iftmpA>=90{ fmt.Println("tmpA>=90") }elseiftmpA<90&&tmpA>......
  • 【Java】删除String数组中的所有空值
    1、封装一个方法/****去除String数组中的空值*/privateString[]deleteArrayNull(Stringstring[]){StringstrArr[]=string;//step1:定义一个list列表,并循环赋值ArrayList<String>strList=newArrayList<String>();......
  • MySQL插入数据报错:1366 Incorrect string value: '\xF0\xA0\xB9\xB3\xF0\xA0...
    [10501]SQLSTATE[22007]:Invaliddatetimeformat:1366Incorrectstringvalue:'\xF0\xA0\xB9\xB3\xF0\xA0...'forcolumnxxxxatrow1是因为MySQL不能识别4个字节的utf8编码的字符,抛出了异常。解决办法将字符类型换成改为utf8mb4数据库:ALTERDATABASE`db_name`C......
  • NSString与NSDate互转
    转换成字符串NSDateconverttoNSString:1.NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];2.[dateFormattersetDateFormat:@"yyyy-MM-ddHH:mm:ss"];3.NSString*strDate......
  • java.lang.String中的trim()方法的…
    String.Trim()方法到底为我们做了什么,仅仅是去除字符串两端的空格吗?一直以为Trim()方法就是把字符串两端的空格字符给删去,其实我错了,而且错的比较离谱。首先我直接反编译String类,找到Trim()方法:publicstringTrim(){returnthis.TrimHelper(WhitespaceChars,2);}Trim......
  • Java重写toString的意义
    Java重写toString的意义一.toString()方法toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的引用地址.在进行String类与其他类型的连接操作时,自动调用toString()方法,demo如下:Datetime=newDate();System.out.println("time="+time);//相当于下......
  • D. Binary String Sorting
    Problem-D-Codeforces枚举/线性dp枚举做法:枚举每个点,满足条件左边全是0右边全是1取每个点花费中的最小值#include<bits/stdc++.h>usingnamespac......