博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#面向对象9 字符串
阅读量:5985 次
发布时间:2019-06-20

本文共 657 字,大约阅读时间需要 2 分钟。

 

 

1.字符串的不可变性

当你给一个字符串重新赋值之后,老的值并没有销毁,而是重新开辟了一块空间(堆)存储新的值。

**当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。

 

示意图:值类型和引用类型在内存中的存储

 

示意图:s1和s2 在栈中存储着相同的地址,这个地址指向堆中的"张三";s1重新赋值“123”,会在堆中开辟一块新的空间存储“123”,然后栈中的s1存储的地址改变!

示意图:验证s1="123",s2="123"在栈中存放的内存都是堆中同一个地址

 

2.可以将字符串看做是char类型的一个只读数组。

ToCharArray();

new string (char[] chs);

 

3.StringBuilder

 

4.字符串的各种方法

1) Length

2) ToUpper

3) ToLower

4) equals : s1.equals(s2,StringComparison.OrdinalIgnoreCase) --忽视大小写的比较

5) split :

6) Contains

7) Replace

 

 8) Substring  

9) StartsWith

10) EndsWith

11) IndexOf/LastIndexOf

12) Trim

13) TrimStart

14) TrimEnd

15) IsNullOrEmpty

16) string.Join

 

转载于:https://www.cnblogs.com/youguess/p/8446630.html

你可能感兴趣的文章
DEV CheckComboboxEdit、CheckedListBoxControl(转)
查看>>
MySQL跳过密码登录
查看>>
PLI 到 COBOL 的转换-数据类型 【不搞Mainframe的可能看不懂,冷门的语言】
查看>>
Tomcat学习总结(4)——基于Tomcat7、Java、WebSocket的服务器推送聊天室
查看>>
js_正则
查看>>
一些有用的技术文章
查看>>
Linux:shell登录过程
查看>>
linux 交叉编译出现的问题
查看>>
LruCache的缓存策略
查看>>
Android解析WindowManager(一)WindowManager体系
查看>>
MapReduce中的map个数
查看>>
开源框架:SDWebImage
查看>>
vue 更改数组里的数据的坑
查看>>
C++中抽象类和接口类的区别
查看>>
【中文】Joomla1.7扩展介绍之 K2(内容建设)
查看>>
Flex Label组件扩展边框与背景
查看>>
DOM相关知识总结
查看>>
类加载器、反射,反射的应用实例(泛型擦除和配置文件)
查看>>
not exists、left join/is null、not in 行为
查看>>
外企面试课程(一)---熟悉常见的缩略词
查看>>