科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件理解VC# 2005中的字符串和正则表达式

理解VC# 2005中的字符串和正则表达式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

除了向你展示在.NET框架中字符串的使用外,本文还将向你介绍正规表达式的知识。

作者:朱先忠编译 来源:天极软件 2007年11月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
(三) 操作和比较字符串

  除了显示包含各种格式化数据的字符串外,其它普通与字符串有关的任务就是字符串操作和比较。要记住的一个重要的事情是,字符串实际上是.NET框架基类库中的一个类。因为它是一个类,所以实际上,你可以调用一个字符串的方法,就象你可以调用任何其它类上的方法一样。

  你可以在字符串常数或字符串变量调用这些方法,见下列代码:

int x = string.Length();
int y = "Hello World".Length();

  表格3简短列举了一些你可以使用于字符串的最常用的方法以便获得该字符串的信息或操作它。

  表格3.常用的字符串实例方法

方法 描述
CompareTo 把这个字符串实例与其它字符串实例比较。
Contains 返回一布尔值,指示是否当前字符串实例包含给定的子串。
CopyTo 从字符串实例中把一个子串复制到一个字符数组的特定位置。
EndsWith 返回一布尔值,指示是否字符串以一个给定的子串结束。
Equals 指示是否该字符串等于另一个字符串。你还可以使用'=='操作符来代替。
IndexOf 返回一个子串在字符串实例中的索引。
IndexOfAny 返回一个字符串实例中在子串内的任何字符的第一次索引的出现。
PadLeft 使用特定数目的空格或其它Unicode字符来填充字符串,特别适用于字符串右对齐。
PadRight 把一组特定的空格字符或其它Unicode字符添加到字符串的最后,创建一个字符串右对齐效果。
Remove 从字符串中删除给定数目的字符。
Replace 使用特定的代替内容来代替一个给定的字符或字符串在字符串实例中的所有出现。
Split 使用特定的字符作为分割点,把当前字符串分解成一个字符串数组。
StartsWith 返回一个布尔值,指示是否该字符串实例以一个特定的字符串开始。
SubString 给定起始点和长度的情况下,返回字符串的特定部分。
ToCharArray 把字符串转换成一个字符数组。
ToLower 把字符串全部转换成小写字符。
ToUpper 把字符串全部转换成大写字符。
Trim 从一个字符串的开始和结束位置,删除一组给定字符的所有出现。
TrimStart 实现Trim功能,但仅从字符串的开始位置。
TrimEnd 实现Trim功能,但仅从字符串的结束位置。

  下列代码展示了你可以使用上面的相应函数来实现字符串查询和操作等:

string sourceString = "Mary Had a Little Lamb";
string sourceString2 = " Mary Had a Little Lamb ";
Console.WriteLine(sourceString.ToLower());
Console.WriteLine(string.Format("The string '{0}' is {1} chars long",
sourceString,sourceString.Length));
Console.WriteLine(string.Format("Fourth word in sentence is : {0}",
sourceString.Split(' ')[3]));
Console.WriteLine(sourceString2.Trim());
Console.WriteLine("Two strings equal? " + (sourceString == sourceString2.Trim()));

  前面的代码输出如下所示结果:

mary had a little lamb
The string 'Mary Had 一个 Little Lamb' is 22 chars long.
Fourth word in sentence is : Little
Mary Had a Little Lamb
Two strings equal? True

  (四) StringBuilder入门

  如前面所提及,字符串是常量。这意味着,当你把两个字符串连接成一个新的字符串时,有一段时间CLR在内存中有三个字符串。因此,例如,当你连接实现如下代码所示连接时:

string a = "Hello";
string b = "World";
string c = 一个 + " " + c;

  实际上,在内存共有四个字符串,包括空格。为了缓和这个字符串连接性能问题并且提供给你一个工具使连接更容易些,.NET框架中提供了一个类StringBuilder。

  通过使用StringBuilder动态地创建可变长度的字符串,你克服了CLR字符串中常量字符串这一事实;而且,这样以来,该代码变得更具可读性。下列代码展示了StringBuilder的使用:

StringBuilder sb = new StringBuilder();
sb.Append("Greetings!\n");
formatString = "{0:$#,###0.00;($#,###0.00);Zero}";
dVal = 129.99;
sb.AppendFormat(formatString, dVal);
sb.Append("\nThis is a big concatenated string.");
Console.WriteLine(sb.ToString());

  前面的代码输出如下所示结果:

Greetings!
$129.99
This is a big concatenated string.

  注意,前面代码中的"\n"把一个换行符字符插入到字符串中。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章