(2)单个字符也可以表示为字符串,还可以有长度为0的字符串
(3)使用s.Length属性来获得字符串中的字符个数
(4)string可以看做是char的只读数组。char c = s[1];。例子:遍历输出string中的每个元素。
(5)C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
(6) 如果要对char进行修改,那么就必须创建一个新的字符串,用s. ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。
String类常用函数:
1、 ToLower():得到字符串的小写形式。
2、注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。s.ToLower()与s=s.ToLower()
3、 ToUpper():得到字符串的大写形式; Trim()去掉字符串两端的空白。
4、 s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两个字符串进行比区分大小写的比较。
字符串的分割:
1、 string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;
2、string[] Split(char[] separator, StringSplitOptions options) 将字符串按照指定的char分割符分割为字符串数组( options 取RemoveEmptyEntries的时候移除结果中的空白字符串);
3、string[] Split(string[] separator, StringSplitOptions options) 将字符串按照指定的string分割符分割为字符串数组。
字符串函数详解:
1、字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。
2、 取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;
3、string Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。
4、 bool Contains(string value)判断字符串中是否含有子串value
5、bool StartsWith(string value)判断字符串是否以子串value开始;
6、bool EndsWith(string value)判断字符串是否以子串value结束;
7、int IndexOf(string value):取子串value第一次出现的位置。
实例分析:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string std1 = "abcdef";
//获取字符串的长度
int length = std1.Length;
Console.WriteLine("std1的长度:{0}",length);
//将字符串转换成字符数组
char[] std = std1.ToCharArray();
foreach (var item in std)
{
Console.WriteLine(item);
}
//转换成大写
std1 = std1.ToUpper();
Console.WriteLine("std1 = {0}",std1);
string std2 = "ABCDEF";
//转换成小写
std2 = std2.ToLower();
Console.WriteLine("sdt2 = {0}",std2);
//两个字符串的比较
//区分大小写,按照顺序比较
bool b = std1.Equals(std2,StringComparison.Ordinal);
Console.WriteLine(b);
//按照顺序比较,不区分大小写
b = std1.Equals(std2,StringComparison.OrdinalIgnoreCase);
Console.WriteLine(b);
//字符串的分隔
string std3 = "k,lm-,no,pq,,rst";
//按照指定的字符分隔字符串,返回的是一个字符串数组,
//分隔函数的参数是一个可变的数组
string[] str = std3.Split(',','-');
foreach (var item in str)
{
Console.WriteLine(item);
}
Console.WriteLine("*******************");
// 删除数组中的空白字符串
string[] str1 = std3.Split(new char[] {','},StringSplitOptions.RemoveEmptyEntries);
foreach (var item in str1)
{
Console.WriteLine(item);
}
Console.WriteLine("*******************");
//将字符串按照指定的字符串进行分隔
string[] str2 = std3.Split(new string[] {"no"},StringSplitOptions.RemoveEmptyEntries);
foreach (var item in str2)
{
Console.WriteLine(item);
}
//截取字符串
string std4 = "http://www.baidu.com";
从指定的位置截取直到字符串尾.
std4 = std4.Substring(7);
Console.WriteLine(std4);
string std5 = "http://www.baidu.com";
//截取一部分的字符串
std5 = std5.Substring(7, 13);
//如果截取的字符串的长度不足,程序会报错
// std5 = std5.Substring(7,100);
Console.WriteLine(std5);
Console.ReadKey();
}
}
}