C#--字符、字符串学习
字符
在.NET Framework中,每个字符都是System.Char结构的一个实例。System.Char类型很简单,提供了两个公共只读常量字段:MinValue和MaxValue。
GetNumericValue方法返回字符的数值形式。
public static void Go() {
Double d;
// 数字3
d = Char.GetNumericValue('\u0033'); // ‘3’ would work too
Console.WriteLine(d.ToString()); // Displays "3"
// 普通分数 四分之一
d = Char.GetNumericValue('\u00bc');
Console.WriteLine(d.ToString()); // Displays "0.25"
// 'A'是大写拉丁字母A
d = Char.GetNumericValue('A');
Console.WriteLine(d.ToString()); // Displays "-1"
}
可以使用三种技术来实现各种数值类型和Char实例的相互转换。下面按照优先顺序来列出
- 转型(强制类型转换),最常用
- 使用
Convert类型 - 使用
IConvertible接口
system.String类型
String类型直接拍绳子Object,所以是引用类型。因此String类型总是存在在堆上,永远不会跑到线程栈。
提示:如果想换行或者回车,应该使用Environment.NewLine方式。
可以使用C#的+操作符直接将几个字符串连成一个。
最后,C#提供了一种特殊的字符串处理方式,称为逐字字符串,通常用于指定文件或目录的路径,或者与正则表达式配合使用。
String file= "c:\\Windows\\System32\\Notepad.exe";
//或者
String file = @"c:\Windows\System32\NotePad.exe";
字符串是不可变的
String对象最重要的一点就是不可变。也就是说,字符串一经创建就不可以更改。意味着,它允许在一个字符串上执行各种操作,而不实际的更改这个字符串。如果需要频繁的更改字符串,请使用StringBuilder类。
比较字符串
强烈建议使用Equals、Compare等方法,不适用CompareTo、==和!=等操作符。
字符串留用
C#默认不启用字符串留用
高效构造字符串
使用StringBuilder类。
StringBuilder sb = new StringBuilder();
有多个构造器,下面解释一些概念
最大容量
一个Int32值,指定了能放到字符串中的最大字符数
容量
指定了有
StringBuilder维护的字符串的长度。如果事先知道要在StringBuilder中放入多少个字符,那么构造StringBilder时,应该自己设置容量。字符数组
一个有
char结构构成的数组,负责维护字符串的字符内容。public static void Go() {
// Construct a StringBuilder to do string manipulations.
StringBuilder sb = new StringBuilder();// Perform some string manipulations using the StringBuilder.
sb.AppendFormat("{0} {1}", "Jeffrey", "Richter").Replace(" ", "-");// Convert the StringBuilder to a String in
// order to uppercase all the characters.
String s = sb.ToString().ToUpper();// Clear the StringBuilder (allocates a new Char array).
sb.Length = 0;// Load the uppercase String into the StringBuilder,
// and do more manipulations.
sb.Append(s).Insert(8, "Marc-");// Convert the StringBuilder back to a String.
s = sb.ToString();// Display the String to the user.
Console.WriteLine(s); // "JEFFREY-Marc-RICHTER"
}
获取对象的字符串表示:ToString
Microsoft在FCL中定义的许多类型都能同时识别几种格式。例如,DateTime类型支持用d标识短日期,用D标识长日期,用g标识常规,用M标识月日,用S标识排序,用Y标识年月。
所有内建值类型都支持C标识货币格式,用D标识十进制格式,用E标识科学记数法,用G标识常规模式,用N标识数字格式,用P标识百分数,X标识十六进制。
解析字符串来获取对象:Parse
能解析字符串的任何类型都提供了公共静态方法Parse。方法获取一个String并获取类型的实例。使用方法很简单
// 调用失败,因为解析的字符串包含空格
Int32 x= Int32.Pares(" 123",NumberStylesNone,null);
字符串作为最常用的对象,使用起来还是没有什么难度。有一些难度的听都没听说过,比如最后的安全字符串。努力吧。
C#--字符、字符串学习的更多相关文章
- python --- 字符编码学习小结(二)
距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...
- [Clr via C#读书笔记]Cp14字符字符串和文本处理
Cp14字符字符串和文本处理 字符 System.Char结构,2个字节的Unicode,提供了大量的静态方法:可以直接强制转换成数值: 字符串 使用最频繁的类型:不可变:引用类型,在堆上分配,但是使 ...
- 随机生成指定长度字符字符串(C语言实现)
相关函数 srand(), rand()头文件#include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MA ...
- Java字符字符串类
Java字符字符串类 Character 类 Character 类用于对单个字符进行操作.Character 类在对象中包装一个基本类型 char 的值在实际开发过程中,我们经常会遇到需要使用对象, ...
- 5.Java基础_Java算术/字符/字符串/赋值运算符
/* 算术/字符/字符串/赋值 运算符 */ public class OperatorDemo01 { public static void main(String[] args){ //算术运算符 ...
- KMP字符串匹配学习
KMP字符串匹配学习 牛逼啊 SYC大佬的博客
- rune和byte在处理字符/字符串中的应用.
rune和byte在处理字符/字符串中的应用. 定义: rune是int32的别名,-2147483648->2147483647,常用来表示UNICODE字符集,可以用来处理包含中文/非中文的 ...
- Python 图片转字符画 学习笔记
Python 图片转字符画 学习笔记 标签(空格分隔): Python 声明:此文章和所有代码是学习笔记,非原创,原文教程地址:https://www.shiyanlou.com/courses/37 ...
- Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)
自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...
随机推荐
- 2.羽翼sqlmap学习笔记之MySQL注入
1.判断一个url是否存在注入点: .sqlmap.py -u "http://abcd****efg.asp?id=7" -dbs 假设找到数据库:student ------- ...
- Sql Server之使用T_SQL创建,修改,查看数据库信息
一.使用Transact_SQL创建数据库 Transact_SQL语法如下: create database database_name [ on [primary] [<fi ...
- DirectShow+VS2010+Win7配置说明
不得不说,使用windows的东西确实很麻烦,DirectShow这个东西不断更新换代,书本上的知识完全跟不上时代,只能去博客上查资料.百度之后,看了大量的文章,终于完成了自己的DirectShow安 ...
- 为 Web 设计师准备的 20 款 CSS3 工具
1.CSS3 Generator 2. Border Radius 3. CSS3 Maker 4. CSS3 Transforms 5. CSS3 Drop shadow generator 6. ...
- 用JAVA日志来写诗
工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为是一件多么重要的事,当遇到多线程环境下高压力导致的并发bug时,你就能体会到记录log的重要性. 有的人很高兴的就在代码里加上了这么句: ...
- C#根据句柄改变窗体控件值
需求是这样,有个程序界面我们需要通过自己的程序持续输入数据,界面如图. 可以获得控件的句柄而用钩子写入值.这里需要用到spy++工具.在VS的工具下有个spy++工具,打开如下图 通过这个工具可以获得 ...
- jQuery手机菜单
效果展示 http://hovertree.com/texiao/nav/4/ 手机扫描二维码查看效果: 源码下载 http://hovertree.com/h/bjaf/kroft6c7.htm ...
- 谈一谈SQL Server中的执行计划缓存(下)
简介 在上篇文章中我们谈到了查询优化器和执行计划缓存的关系,以及其二者之间的冲突.本篇文章中,我们会主要阐述执行计划缓存常见的问题以及一些解决办法. 将执行缓存考虑在内时的流程 上篇文章中提到了查询优 ...
- jquery属性
1.toggleClass() 如果对象有class属性,则删除: 如果没有class属性,则加上. <style> .hide{ display: none; } </style ...
- 2015元旦来个炫的html5特效
效果网址:http://keleyi.com/keleyi/phtml/html5/5.htm 代码: <!DOCTYPE html> <html xmlns="http: ...