C# 字符串String相关
是否可以继承String类
不能,因为从定义上看String类是sealed类【密封】故不可以继承。
当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。若硬要写,则编译不通过
字符串字节长度、字符长度
string strTmp = "abcdefg某某某";
int i=System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j=
答:i=13,j=10
解释:
一个汉字占两个字节,一个字母占一个字节;
String的Lenght属性表示字符的个数(不分中英文)。
字符串对象
String s = new String("xyz");创建了几个String Object
答:两个对象,一个是“xyz”,一个是指向“xyz”的引用对象s。
空字符串理解
String str1 = null; str引用为空
String str2 = ""; str引用一个空串
也就是null没有分配内存空间,""分配了内存空间,因此str1还不是一个实例化的对象,而str2已经实例化。
注意:null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。
对象用equals比较,null用等号比较。
因此,如果str1=null; 下面的写法错误:
if(str1.equals("")||str1==null)
{
//如果str1没有值,则....
//。。。。
}
正确的写法是:
if(str1==null||str1.equals(""))
{
//先判断是不是对象,如果是,再判断是不是空字符串
//...
}
打个比方:一个空玻璃杯,你不能说它里面什么都没有,因为里面有空气,当然也可以把它弄成真空,null与" "的区别就象真空与空气一样。
string与stringBuilder
String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。 因为一旦创建了该对象,就不能修改该对象的值。
在处理字符串时,最好使用stringBuilder类,其.NET命名空间是System.Text。该类并不是创建新的对象,而是通过append,remove,insert等方法直接对字符串进行操作,通过toString方法返回操作结果,因此当你需要大量拼接、删除、修改字符串时,使用stringBuilder可以优化性能。
数字转为百分数字符串(保留小数点后两位)
- C#代码, Int/double 至少一个不是int型
ToString("0.00%"); 或者ToString("p2");
- JS代码
((a/b)*100).toFixed(2) + '%'
判断字符串中汉字
方法1、用ASCII码判断
//在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下:
string text = "是不是汉字,ABC,柯乐义";
for (int i = ; i < text.Length; i++)
{
if ((int)text[i] > )
{
Console.WriteLine("是汉字");
}
else
{
Console.WriteLine("不是汉字");
}
}
方法2、用汉字的 UNICODE 编码范围判断
//汉字的 UNICODE 编码范围是4e00-9fbb,具体代码如下:
string text = "是不是汉字,ABC,keleyi.com";
char[] c = text.ToCharArray();
for (int i = ; i < c.Length; i++)
{
if (c[i] >= 0x4e00 && c[i] <= 0x9fbb)
{
Console.WriteLine("是汉字");
}
else
{
Console.WriteLine("不是汉字");
}
}
方法3、用正则表达式判断
//用正则表达式判断也是用汉字的 UNICODE 编码范围,具体代码如下:
string text = "是不是汉字,ABC,keleyi.com";
for (int i = ; i < text.Length; i++)
{
if (Regex.IsMatch(text[i].ToString(), @"[\u4e00-\u9fbb]+{1}"))
{
Console.WriteLine("是汉字");
}
else
{
Console.WriteLine("不是汉字");
}
}
C# 字符串String相关的更多相关文章
- Python 字符串String相关知识
test.capitalize( ) |首字母大写 test.lower( ) |全部变成小写(只能处理英文字母) test.casefold( ) | ...
- Redis字符串(STRING)中BIT相关命令
上篇文章我们对STRING数据类型中一些基本的命令进行了介绍,但是没有涉及到BIT相关的命令,本文我们就来看看几个和BIT相关的命令. 本文是Redis系列的第四篇文章,了解前面的文章有助于更好的理解 ...
- 字符串string的相关应用
之所以抛弃char* 的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等, 而且作为一个泛型类出现,他集成的操作函数足以完成我们大多数情况下 ...
- C#字符串string以及相关内置函数
C#字符串string函数 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- [Java初探04]__字符串(String类)相关
前言 接下来将暂时将重心偏移向实际操作,不在将大量时间花费在详细的知识点整理上,将会简略知识总结笔记的记录,加强实际练习的时间,实例练习篇也不再同步进行,我会将部分我觉得重要的源码更新在每节知识点后面 ...
- C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)
在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...
- Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准Java类库中提供了一 ...
- JAVA基础5——与String相关的系列(1)
与String相关的系列 String, 是JAVA中常见的一个引用类型,且其具有一定的特殊性. String类型被设置为final型,即不可继承,也就不可修改其中的实现. String可以改变吗 S ...
- python字符串(string)方法整理
python中字符串对象提供了很多方法来操作字符串,功能相当丰富. print(dir(str)) [..........'capitalize', 'casefold', 'center', 'co ...
随机推荐
- Go语言(基本数据类型)
Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 基本数据类型 整型 整型 ...
- 『Go基础』第6节 注释
在上一节中, 我们学会了怎样写一个 Hello Go . 但是, 大家有可能还没有明白为什么那么写, 下面我们通过注释来了解一下. 注释的重要性不再过多赘述, 一段不写注释的代码读起来实在难受. 那么 ...
- 第14章 Salesforce标准对象
14.1 Sales Cloud基本信息 Sales Cloud 会为您提供管理业务的一切功能.生成最佳潜在客户.通过销售漏斗管理业务机会,并使用现有客户培养关系.以及,预测收入.设置销售区域,并将代 ...
- Jmeter_自带脚本录制
1.http请求+查看结果树 代理服务器操作步骤 1.创建一个线程组(右键点击“测试计划“---> ”添加“ ---> ”线程组“) 2.创建一个http代理服务器(右键“测试计划”--& ...
- html中实现某区域内右键自定义菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Helm命令日常使用
更换仓库 默认的stable仓库地址是:https://kubernetes-charts.storage.googleapis.com 若遇到Unable to get an update from ...
- .Net Core-类库中创建CodeFirst
本文仅用来学习记录. 搭建项目架构的时候,需要在类库中进行CodeFirst数据迁移 1.在项目的解决方案中,添加类库ERPFrame.Model 2.在类库项目中 添加实体模型和数据上下文 其中 ...
- php后台实现页面跳转的方法-转载
地址:http://blog.csdn.net/abandonship/article/details/6459104 其中方法三的js代码在tp框架使用存在故障,一个是需要把代码写在一起(可能也不需 ...
- ceph维护命令小结(基于jewel版)
ceph osd pool 操作小计 #列出所有pool root@ceph:~# ceph osd pool ls [detail] #新建pool root@ceph:~# ceph osd po ...
- 内存域水印值:min_free_kbytes
1.内存域水印值:需要为关键性分配保留的内存空间的最小值:该值保存在全局变量min_free_kbytes中 2.内存域水印值的计算由函数init_per_zone_pages_min完成: /* * ...