




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、标记标记(tokenizing)是从文本中提取具体内容的过程。下面的代码从句子中提取单词,并把它们输出到控制台。class mytokenizing static void Main(string args) string mystring=I like this food,are you?;charseparators= ,?,:,!; int startpos=0; int endpos=0; do endpos=mystring.IndexOfAny(separators,startpos); if ( endpos=-1 ) endpos=mystring.Length; if (
2、 endpos!=startpos ) Console.WriteLine(mystring.Substring( startpos,(endpos-startpos); startpos=(endpos+1); while(startpos-1) sb=new StringBuilder(readLineSReader.ReadLine(); /插入字符串操作语句如:sb.Append(,123); Console.WriteLine(sb.ToString(); 在结尾添加一列内容:/displays aaaaaaaa,bbbbbbbb,cccccc,xxxxx/.sb.Append(,x
3、xxxx);第一列可以使用下面的代码删除:/displays bbbbbbbb,cccccc/.sb.Remove(0,sb.ToString().IndexOf(,)+1);替换分隔符:/aaaaaaaa+bbbbbbbb+ccccccsb.Replace(,+);添加行号(lineNumber已经在前面某处声明过为前提):sb.Insert(0,lineNumber.ToString(000 );lineNumber+;/displays /000 aaaaaaaa,bbbbbbbb,cccccc/001 dddddddd,eeeeeeee,ffffff/002 gggggggg,hhhh
4、hhhh,iiiiii/003 jjjjjjjj,kkkkkkkk,llllll13:16 | 评论 (0) 2004年7月11日 # 1、从字符串中提取子串StringBuilder 类没有支持子串的方法,因此必须用String类来提取。string mystring=My name is ynn.;/Displays name is ynn.Console.WriteLine(mystring.Substring( 3 );/Displays ynnConsole.WriteLine(mystring.Substring( 11,3 ); 2、比较字符串String 类有四种方法:Comp
5、are( )、CompareTo( )、CompareOrdinal( )、Equals( )。Compare( )方法是CompareTo( )方法的静态版本。只要使用“”运算符,就会调用Equals( )方法,的以Equals( )方法与“”是等价的。CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。示例:int result;bool bresult;s1=aaaa;s2=bbbb;/Compare( )method/result值为“0”表示等,小于零表示 s1 s2result=String.Compare(s1,s2);result=s1.CompareTo
6、( s2 );result=String.CompareOrdinal(s1,s2);bresult=s1.Equals( s2 );bresult=String.Equals( s1,s2 );一个例外情况是,两个字符串都是内置的,并相等,静态方法要快得多。3、字符串格式化3.1 格式化数字格式字符 说明和关联属性 c、C 货币格式。d、D 十进制格式。 e、E 科学计数(指数)格式。 f、F 固定点格式。 g、G 常规格式。 n、N 数字格式。 r、R 往返格式,确保将已转换成字符串的数字转换回数字时具有与原数字相同的值。 x、X 十六进制格式。 double val=Math.PI;Co
7、nsole.WriteLine(val.ToString( ); /displays 3.14159265358979Console.WriteLine(val.ToString(E);/displays 3.141593E+000Console.WriteLine(val.ToString(F3);/displays 3.142int val=65535;Console.WriteLine(val.ToString(x); /displays ffffConsole.WriteLine(val.ToString(X); /displays FFFFSingle val=0.123F;Cons
8、ole.WriteLine(val.ToString(p); /displays 12.30 %Console.WriteLine(val.ToString(p1); /displays 12.3 %默认格式化会在数字和百分号之间放入一个空格。定制方法如下: 其中NumberFormatInfo类是System.Globalization命名空间的一个成员,因此该命名空间必须导入到程序中。Single val=0.123F;object myobj=NumberFormatInfo.CurrentInfo.Clone( ) as NumberFormatInfo;NumberFormatInf
9、o myformat=myobj as NumberFormatInfo;myformat.PercentPositivePattern=1;Console.WriteLine(val.ToString(p,myformat); /displays 12.30%;Console.WriteLine(val.ToString(p1,myformat); /displays 12.3%;格式化具有很大的灵活性。下面的例子演示一个没有意义的货币结构:double val=1234567.89;int groupsize=2,1,3;object myobj=NumberFormatInfo.Curr
10、entInfo.Clone( );NumberFormatInfo mycurrency=myobj as NumberFormatInfo;mycurrency.CurrencySymbol=#; /符号mycurrency.CurrencyDecimalSeparator=:; /小数点mycurrency.CurrencyGroupSeparator=_; /分隔符mycurrency.CurrencyGroupSizes=groupsize;/ 输出#1_234_5_67:89Console.WriteLine(val.ToString(C,mycurrency); 3.2 格式化日期
11、输出形式取决于用户计算机的文化设置。using System;using System.Globalization; public class MainClass public static void Main(string args) DateTime dt = DateTime.Now; String format = d,D,f,F,g,G,m,r,s,t, T,u, U,y,dddd, MMMM dd yyyy,ddd, MMM d yy,dddd, MMMM dd,M/yy,dd-MM-yy,; String date; for (int i = 0; i format.Length
12、; i+) date = dt.ToString(formati, DateTimeFormatInfo.InvariantInfo); Console.WriteLine(String.Concat(formati, : , date); d :07/11/2004 =输出D :Sunday, 11 July 2004f :Sunday, 11 July 2004 10:52F :Sunday, 11 July 2004 10:52:36g :07/11/2004 10:52G :07/11/2004 10:52:36m :July 11r :Sun, 11 Jul 2004 10:52:3
13、6 GMTs :2004-07-11T10:52:36t :10:52T :10:52:36u :2004-07-11 10:52:36ZU :Sunday, 11 July 2004 02:52:36y :2004 Julydddd, MMMM dd yyyy :Sunday, July 11 2004ddd, MMM d yy :Sun, Jul 11 04dddd, MMMM dd :Sunday, July 11M/yy :7/04dd-MM-yy :11-07-043.3 格式化枚举enum classmen ynn=1, yly=2, css=3, C+=4获取枚举字符串信息如下:
14、classmen myclassmen=classmen.yly;Console.WriteLine(myclassmen.ToString( ); /displays ylyConsole.WriteLine(myclassmen.ToString(d); /displays 2从系统枚举中获取文本人信息如下:DayOfWeek day=DayOfWeek.Friday;/displays Day is FridayConsole.WriteLine(String.Format(Day is 0:G,day);格式化字符串“ G ”把枚举显示为一个字符串。11:56 | 评论 (0) 200
15、4年7月8日 # StringBuilder 类学习笔记String类的不可改变性使它更像一个值类型而不是一个引用类型。其副作用是每次执行字符操作时,都会创建一个新的String对象。StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。StringBuilder 类的一些属性与方法Length属性并不是只读的。StringBuilder sb=new StringBuilder(I live the language);Console.WriteLine(sb.ToString( ); sb.Length = 6;/Displays I liveConsole.
16、WriteLine(sb.ToString( ); Capacity 属性描述:当前为实例分配的字符数量。默认容量是16,如果将一个字符串作为参数提供给构造函数,容量以最接近 2 的幂的值。MaxCapacity 属性描述:这个实例中可以被分配的字符最大数量。Append( )方法描述:追加给定值的字符串表示。StringBuilder sb=new StringBuilder( );Console.WriteLine( sb.Capacity+t+sb.Length ); sb.Append ( a , 17 ) Console.WriteLine( sb.Capacity+t+sb.Len
17、gth ); 16 0 = 输出32 17EnsureCapacity( Int capacity ) 方法描述:如果当前容量小于指定容量,内存分配会增加内存空间以达到指定容量。Replace( Char oldchar,Char newchar ) 方法描述:用newchar替换oldchar。Replace( String oldstring,String newstring ) 方法描述:用newstring替换oldstring。Replace( Char oldchar,Char newchar,Int startpos,Int count ) 方法描述:从startpos到coun
18、t-1之间用newchar替换oldchar。Replace( String oldstring,String newstring,Int startpos,Int count ) 方法描述:从startpos到count-1之间用newstring替换oldstring。ToString( ) 方法StringBuilder sb=new StringBuilder( I live this game );String s1=sb.ToString(); /Displays I live this gameString s2=sb.ToString(3,4); /Displays live在
19、这里第二个ToString( )方法调用了String类的Substring( )方法public String ToString( int startIndex,int length ) return m_StringValue.Substring( startIndex,length );10:28 | 评论 (0) 2004年7月7日 # String 类学习笔记一、String 类的常用公共成员Compare(String s1,String s2) 静态方法功能:区分大小写比较。 Compare(String s1,String s2,Bool ignoreCase) 静态方法功能:
20、ignoreCase为True,不区分大小写比较。CompareTo(String s) 实例方法功能:对给定字符串与实例字符串执行一次区分大小写与文化信息比较。Copy(String s) 静态方法功能:返回一个与给定字符串同值的新的字符串。CopyTo(Int surceIndex,char destination,Int destIndex,Int count)实例方法功能:此实例中的指定位置复制到 Unicode 字符数组中的指定位置。参数:sourceIndex:此实例中的字符位置。 destination :Unicode 字符的数组。 destIndex :destination
21、 中的数组元素。 count:此实例中要复制到 destination 的字符数。 例程:using System;public class CopyToTest public static void Main() string strSource = changed; char destination = T, h, e, , i, n, i, t, i, a, l, , a, r, r, a, y ; Console.WriteLine( destination ); strSource.CopyTo ( 0, destination, 4, strSource.Length ); Con
22、sole.WriteLine( destination ); strSource = A different string; strSource.CopyTo ( 2, destination, 3, 9 ); Console.WriteLine( destination ); 输出:The initial arrayThe changed arrayThedifferentarrayEndsWith(String s)功能:如果实例字符串是以给定的字符串结束,就返回True。Equals(String s)功能:如果实例字符串与给定的对象具有相同的值,就返回True。Format(IForm
23、atProvider provider,String format,ParamArray args)功能:format 的一个副本,其中格式项已替换为 args 中相应 Object 实例的 String 等效项。参数provider : 一个 IFormatProvider,它提供区域性特定的格式设置信息。 format : 包含零个或多个格式项。 args :包含零个或多个要格式化的对象的 Object 数组。 例如:string myName = Fred;String.Format(Name = 0, hours = 1:hh, myName, DateTime.Now);固定文本是“
24、Name =”和“, hours =”,格式项是“0”和“1:hh”,值为 myName 和 DateTime.Now。Replace(String oldstring,String newstring)功能:在实例字符串中用newstring替换所有oldstring。Split(char separator,int count)参数separator :分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或空引用。 count :要返回的最大数组元素数。 例如:string delimStr = ,.:;char delimiter = delimStr.ToCharAr
25、ray();string words = one two,three:four.;string split = null;split = words.Split(delimiter, 4);foreach (string s in split) Console.WriteLine(-0-, s);one =输出twothreefour.SubString(Int startPos,Int length)功能:从指定位置开始返回一个指定长度的子串。ToString( ) 功能:返回一个对实例字符的引用。ToString(IFormatProvider format)功能:返回一个对实例字符串的引
26、用。13:31 | 评论 (0) 2004年7月6日 # 正则表达式学习笔记(1)一、System.Text.RegularExpression命名空间1、 Regex类可以用来创建正则表达式,还提供了许多方法。如:Regex.Replace(string input,String pattern,string replacement);-RegexOption枚举IgnoreCase 忽略大小写。默认情况区分大小写RightToLeft 从右到左查找输入字符串。None 不设定标志。MiltiLine 指定与$可以匹配行的开头和结尾,以及字符串的开头和结尾。SingleLine 规定特殊字符
27、“.”匹配任一字符。换行符除外。例:RegexOptions.IgnoreCaseRegex.IsMatch(Mystring,YWSM,RegexOptions.IgnoreCase |RegexOptions.RightToLeft):-(两个主要的)类构造函数Regex(string pattern);Regex(string pattern , RegexOption options);例:匹配YWSM:static void Main(string args) Regex myRegex=new Regex(YWSM); System.Console.WriteLine(myrege
28、x.IsMatch(The first three letters of +the alphabet are YWSM); 输出:True如需设置区分大小写可用Regex myRegex=new Regex(YWSM,RegexOption.IgnoreCase);-IsMatch( )方法该方法可以测试字符串,看它是否匹配正则表达式的模式。如果发现了一次匹配,返回True,否则为False。IsMatch( )有一个静态的重载方法,使用它时可以无需显式创建一个Regex对象。重载形式:public bool Regex.IsMatch(string input );public bool R
29、egex.IsMatch(string input,int startat);public static bool Regex.IsMatch(string input,string pattern);public static bool Regex.IsMatch(string input,string pattern,RegexOption options);input: 指定了包含将检索的文本的字符串。sartat: 指定了搜索的起始字符位置。pttern: 指定将匹配的样式。options: 匹配行为的选项。例:string inputstring=Welcome to the ywi
30、cc,ywsmxy!; if ( Regex.IsMatch( inputstring,ywicc,RegexOptions.IgnoreCase) ) Console.WriteLine(Match Found); Else Console.WriteLine( No Match Found);-Replace( )方法 用指定的字符串代替一个匹配模式。-基本方法有:public static string Regex.Replace(string input,string pattern,string replacement);public static string Regex.Repl
31、ace(string input,string pattern,string replacement,RegexOption options);例:用AAA替换BBB的所有实例代码:string inputstring=Welcome to the AAA!;inputstring=Regex.Replace(inputstring,BBB,AAA);Console.WriteLine(inputstring);-非静态方法,可以指定替换次数的最大值以及开始下标:Public string Replace(string input,string replacement);Public stri
32、ng Replace(string input,string replacement,int count);Public string Replace(string input,string replacement,int count,int startat);例:使用XXX替换456之后的123,最多替换两次,代码如下:string inputstring=123,456,123,123,123,789,333;Regex regexp=new Regex(123);Inputstring=regexp.Replace(inputstring,XXX,2,4)Console.WriteLin
33、e(inputstring);输出:123,456,XXX,XXX,123,789,333-Split( )方法在每次发现匹配的位置拆分字符串。返回一个字符串数组。using System;using System.Text;using System.Text.RegularExpressions;using System.Windows.Forms;class mysplit static void Main(string args) string inputstring=123,456,789,ads; string splitResults; splitresults=Regex.Split(inputstring,); StringBuilder resultsstring=new StringBuilder(32); foreach(string stringeleme
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年03月江西吉安市吉州区工业园区管委会面向社会公开招聘编外人员1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年03月吉林省农业科学院编外劳务派遣人员(1号)(5人)笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 花草种项目风险评估报告
- 中级电子商务设计师-《电子商务设计师》押题密卷2
- 内蒙古阿荣旗第五区域联合体2025届五下数学期末检测试题含答案
- 广西城市职业大学《园林景观设计初步》2023-2024学年第二学期期末试卷
- 淮北职业技术学院《电力系统基础(英语)》2023-2024学年第二学期期末试卷
- 四川民族学院《数据结构及算法(Python)》2023-2024学年第二学期期末试卷
- 重庆智能工程职业学院《水工程监理》2023-2024学年第二学期期末试卷
- 山东省巨野县第一中学2025届全国高三冲刺考(四)全国I卷历史试题含解析
- 模拟考保安证试题及答案
- 2025年上海杨浦城市建设投资集团有限公司招聘笔试参考题库附带答案详解
- 2025年浙江省杭州市余杭区中考语文模拟试卷含答案
- 摊铺机租赁合同协议书范本
- 儿童画教材课件
- 河南省郑州市2025年高中毕业年级第二次质量预测英语试题(含答案无听力原文及音频)
- 用户画像的构建与应用试题及答案
- 广东省2025年普通高等学校招生全国统一考试模拟测试(一)英语试题及答案
- 2025年湖南省长沙市初中学业水平考试模拟(一)历史试题(原卷版+解析版)
- 国家义务教育质量监测八年级美术样卷
- 2025年中考道德与法治全真模拟卷1(含答案解析)
评论
0/150
提交评论