字符串  string

(1)字符串的不可变性

当给字符串重新赋值时,老值没有被销毁,而是重新开辟了一块新的空间去储存新值《------------------堆中,在栈中地址发生变化重新指向新值所处空间的地址。

具体过程请看图解(相册中):字符串的不可变性

当程序结束后由GC(垃圾回收器)扫面整个内存,如发现有的空间没有被指向,则立即把他销毁。

注:当字符串的变量名不一样但是值一样时,它们共同指向同一内存空间。

(2)将字符串看做是char 类型的一个只读数组也就是sting类型看作char类型的一个只读数组。通过下标去访问字符串中某一元素(此时是只读)。

如果我们要去修改字符串中的元素(值),我们应该怎么做呢???????????

首先,将字符串转成char类型的数组,调用ToCharArray()方法,得到char类型的数组。

例如:string s="dsfdf;

char[]   chs=s.ToCharArray();

char[0]=k;//赋值

(2)将字符数组转成字符串,通过  new string(char[]  字符数组)

例如:s=new string(chs);

额外补充:计时器

使用:Stopwatch  sw=new Stopwatch  ();

sw.Start();//开始计时

需要计算时间的代码过程

sw.Stop();//结束时间

sw.Elapsed();//得出总时间

StringBuilder与string

在进行有关字符的拼接。。操作时,string 会产生一个新的实例(开辟空间存数据)用StringBuilder来替代

使用:(1)创建StringBuilder对象

StringBuilder     sb=new StringBuilder();

(2)sb.Append("zdfdsf");//添加一个字符串

(3)sb.ToString();//转化成字符串类型

最新文章

  1. ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
  2. AC日记——统计单词数 openjudge 1.12 5
  3. 第一个Sprint冲刺第七天
  4. Java基础 —— CSS
  5. C# -abstract, override, virtual, new
  6. emacs window版环境配置(设置默认的.emacs文件,指向自定义.emacs达到自定义home的目的)
  7. 《JavaScript程序设计》第2课:JS类型系统
  8. SQL语言(二) java怎样连接操作数据库中的数据
  9. 转 Caffe学习系列(3):视觉层(Vision Layers)及参数
  10. [APIO/ctsc2007]
  11. n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥的程序描述,给出信号灯值得取值范围,并说明每个取值范围的物理意义。
  12. php 查询mysql数据批量转为PDF文件二(批量使用wkhtmltopdf html导出PDF)
  13. MySQL--BNL/ICP/MRR/BKA
  14. 最全的MonkeyRunner自动化测试从入门到精通(8)
  15. ubuntu编译安装php7遇到的问题及解决方案
  16. mysql大表更新sql的优化策略(转)
  17. kolla-ansible 一键安装openstack
  18. Html标签及各种属性(持续更新)
  19. Date对象的用法总结
  20. 捷报 FastAdmin 国内开源排名第 13 名

热门文章

  1. (转)typedef和define的详细区别
  2. 【java编程】java对象copy
  3. vue数据传递的特殊实现技巧
  4. $.grep()的用法
  5. No result defined for action com.nynt.action.ManageAction and result input问题
  6. UltraEdit常用设置及快捷键
  7. Java使用Unsafe接口操作数组Demo
  8. c#问题(按F1或F2键时触发事件)
  9. Mybatis常见面试题 三
  10. COMMON INTERVIEW QUESTIONS