第六章 String类型

1 构造String类型

string str1=new string(‘c‘,3); //str1="ccc"

char[] chs=new char[]{‘c‘,‘a‘,‘t‘,‘o‘,‘o‘,‘n‘};
string str2=new string(chs);//str2="catoon";

string str3=new string(chs,0,3);//str3="cat";

2 String类的字段、属性和索引函数

--String类只有一个静态的公有字段Empty,它表示一个空字符串。下面的布尔表达式值为true:

string.Empty==""

--String类只有一个公有属性Length,用来获取字符串的长度,而它的索引函数则用于获取它指定位置的字符。

--String属于引用类型,空字符串和空引用null是不同的。对空字符串,Length=0;而对值为null的字符串调用Length则会引发异常。

3 字符操作和子串操作

3.1 字符操作

ToCharArray方法

string str="Microsoft";
char[] chs1=str.ToCharArray();
char[] chs2=str.ToCharArray(5,4);
Console.WriteLine(new string(chs1));//Microsoft
Console.WriteLine(new string(chs2));//soft

CopyTo方法

CopyTo方法的第一个和最后一个参数的含义与ToCharArray方法中的参数相同,第二个参数表示得到的字符数组,而第三个参数指定要拷贝到字数组中的起始位置。

char[] chs=new char[20];
"Microsoft".CopyTo(0,chs,0,9);
"WindowsXP".CopyTo(0,chs,10,7);
Console.WriteLine(new string(chs));//输出Microsoft windows

IndexOf和LastIndexOf方法

查找某个字符第一次和最后一次出现的位置。

3.2 字符串操作

IndexOf和LastIndexOf方法,功能同上类似

Substring方法,截取字串

Insert方法,插入字串

Remove方法,删除字串

StartsWith和EndsWith方法,子串的开始和结束部分是否与指定的字串相等

Contains方法,字串是否作为了串出现在另一个字符中。

4 字串的比较与连接

== Equal(实例方法)

Compare CompareTo(实例方法)

+ Concat

5、字符串的格式化

5.1 字符替换

ToLower() ToUpper()

Replace()

5.2 字符填充

PadLeft PadRight

5.3 字符修剪

Trim()

Trim(char[])

5.4 参数格式化

Format,与Console.WriteLine极为相似

5.5 解析字符串

C#语言中,所有类型的基类Object都定义了一个ToString(),用于返回一个描述对象的字符串,默认情况下返回是字符串是类型的完整名称。

很多类型重载了该方法,各种数值类型的ToString返回的是值

与ToString方法的过程相反的,从一个字符串构造其它类型的对象的过程,叫解析字符串。

--方法名称为Parse

--方法为静态方法,返回类型就是定义该方法的类型

--方法只有一个类型为String的参数

int.Parse("123");
bool.Parse("True");
DateTime.Parse("2014-11-28");

有时使用Parse,字符串不符合类型的格式要求,一些类型还提供了TryParse

TryParse有两个参数,第一个为要解析的字符串,第二为为输出参数

int i;
int.TryParse("3.14",out i);//false

6 StringBuilder类

6.1 为什么要引入StringBuilder

String类中提供的绝大多数方法都不是对字符串本身的操作,而是生成新字符串,在内存中留下多个字符串的拷贝,因此对于很长的字符串,或者对于频繁操作的字符串,往往极占用系统资源。因为String对象在本质上是一个常量,创建了之后就不能修改(所以String类的Length属性和索引函数都是不可设置的)。

6.2 构造StringBuilder对象

public StringBuilder()
public StringBuilder(int)
public StringBuilder(int,int)
public StringBuilder(string)
public StringBuilder(string,int)
public StringBuilder(string,int,int,int)
时间: 2024-12-25 12:30:10

第六章 String类型的相关文章

第六章 String

6 String 6.1.String的特点 String s="abc":s是类类型变量,"abc"是一个对象 字符串一旦被初始化就不可以被改变 String s1=new String("abc"): s和s1有什么区别: s在内存中有一个对象,s1在内存中有两个对象 6.2 常用方法 1.获取 int length():获取长度 char charAt(int index):根据位置,获取该位置上的字符 int indexOf(int ch

《精通C#》第十六章-动态类型和动态语言运行时-第一节至第四节

在.Net4.0中引入了一个关键字dynamic,这是一个动态类型关键字.Net中还有一个关键字是var,这是一个隐式类型,可以定义本地变量,此时var所代表的实际的数据类型有编译器在初次分配时决定,比如:var a=1:a="aa":此时编译器就会报错,因为var在初次定义是已经被分配为int类型,它无法用于返回值.参数或者类/结构.这个时候就要想到所有类型的父类object,按照继承关系来说,object是所有类型的父类,所以它可以替代所有的类,也就是说:object a=1:a=

《Python 学习手册4th》 第六章 动态类型简介

''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书)“重点笔记”“本章习题” - 标题1,二级标题用- 标题2,笔记大纲标题.习题题目- 加粗,16px ''' 重点笔记 : 摘要 动态类型是Python语言灵活性的根源(尤其是其提供的多态性) 一. 缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明. 二. 变量.对

第六章 动态类型简介

#1. #A:在python中,类型属于对象而非变量名,每一个对象有两个标准头部信息:一个类型标示符,一个引用的计数器(python中的垃圾收集主要基于引用计数器) #B:在python中,每当一个变量名被赋予一个新对象时,之前那个对象若没有被别的变量名或对象引用的话,那么其占用内存就会被释放,这种计数被称为垃圾收集 #C:在python中,变量总是一个指向对象的指针,而不是可改变的内存区域的标签,给变量赋一个新的值,并不是替换了原始的对象,而是让这个变量去引用了另一个完全不同的对象 #2.sy

C++ Primer Plus 第六版 第16章 string类和标准模板库

1.string实际上是模板具体化basic_string<char> 的一个typedef,有默认参数,所以省略了初始化参数 2.size_type是一个依赖于实现的整形 string将string::npos定义为字符串的最大长度 3.string类的构造函数P656 4.对于c-风格字符串,3种输入方法:cin>>   cin.getline(),cin.get 对于string   ,2种输入方法:cin>>,getline(cin,string对象) 5.st

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

【python核心编程】第六章 序列

1.操作符 (1)成员关系操作符:in .not in >>> string ='abcdefg'>>> 'a' in stringTrue>>> 'h' in stringFalse>>> 'h' not in stringTrue *补充知识*:string模块 >>> import string>>> string.uppercase        #大写字母'ABCDEFGHIJKLMNOP

C Primer Plus (第五版) 第十六章 C预处理器和C库 编程练习

第十六章 C预处理器和C库 开发一个包含您需要使用的预处理器定义的头文件 //max.h  #ifndef _MAX_H_     #define _MAX_H_     #define MAX(X, Y) ((X)>(Y)?(X):(Y)) #endif 2.两个数的调和平均数可用如下方法得到:首先对两数的倒数取平均值,最后再取倒数.使用#define指令定义一个宏"函数"执行这个运算.编写一个简单的程序测试该宏. #include <stdio.h> #defin

《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章  继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章将帮助你解决许多常见的.复杂的建模问题,并解决你可能在现实中遇到的建模问题. 本章以多对多关系开始,这个类型的关系,无论是在现存系统还是新项目的建模中都非常普遍.接下来,我们会了解自引用关系,并探索获取嵌套对象图的各种策略.最后,本章以继承的高级建模和实体条件结束. 6-1  获取多对多关联中的链接表 问题