C#字符串的使用Word格式文档下载.docx
《C#字符串的使用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C#字符串的使用Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
![C#字符串的使用Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/434f1fad-54ab-46c1-b7ee-91c044947dd7/434f1fad-54ab-46c1-b7ee-91c044947dd71.gif)
Console.WriteLine(mystring);
Console.WriteLine(mychars);
任何继承于Array的类都能利用Reverse()方法为数组中的元素重新排序。
三、字符串的插入、删除和替换
示例文件test.txt为字符串的来源。
下面代码以Unicode格式读取文本。
确保文件保存为读取时的格式。
例如记事本允许将代码保存为Unicode:
aaaaaaaa,bbbbbbbb,cccccc
dddddddd,eeeeeeee,ffffff
gggggggg,hhhhhhhh,iiiiii
jjjjjjjj,kkkkkkkk,llllll
下面代码加载数据并处理数据的测试工具。
测试结果发送给控制台。
classmyprocessfile
conststringmyName="
test.txt"
StreamreadLine;
TextWirterwriteLine;
StringBuildersb;
readLine=File.OpenRead(myName);
WriteLine=Console.Out;
StreamReaderreadLineSReader=newStreamReader(readLine,Encoding.Unicode);
readLineSReader.BaseStream.Seek(0,SeekOrigin.Begin);
while(readLineSReader.Peek()>
-1)
sb=newStringBuilder(readLineSReader.ReadLine());
//插入字符串操作语句如:
sb.Append("
123"
);
Console.WriteLine(sb.ToString());
在结尾添加一列内容:
//displaysaaaaaaaa,bbbbbbbb,cccccc,xxxxx
//......
xxxxx"
第一列可以使用下面的代码删除:
//displaysbbbbbbbb,cccccc
sb.Remove(0,sb.ToString().IndexOf('
)+1);
替换分隔符:
//aaaaaaaa+bbbbbbbb+cccccc
sb.Replace('
+'
添加行号(lineNumber已经在前面某处声明过为前提):
sb.Insert(0,lineNumber.ToString("
000"
));
lineNumber++;
//displays
//000aaaaaaaa,bbbbbbbb,cccccc
//001dddddddd,eeeeeeee,ffffff
//002gggggggg,hhhhhhhh,iiiiii
//003jjjjjjjj,kkkkkkkk,llllll
字符串操作
1、从字符串中提取子串
StringBuilder类没有支持子串的方法,因此必须用String类来提取。
stringmystring="
Mynameisynn."
//Displays"
nameisynn."
Console.WriteLine(mystring.Substring(3));
ynn"
Console.WriteLine(mystring.Substring(11,3));
2、比较字符串
String类有四种方法:
Compare()、CompareTo()、CompareOrdinal()、Equals()。
Compare()方法是CompareTo()方法的静态版本。
只要使用“=”运算符,就会调用Equals()方法,的以Equals()方法与“=”是等价的。
CompareOrdinal()方法对两个字符串比较不考本地语言与文件。
示例:
intresult;
boolbresult;
s1="
aaaa"
s2="
bbbb"
//Compare()method
//result值为“0”表示等,小于零表示s1<
s2,大于零表示s1>
s2
result=String.Compare(s1,s2);
result=s1.CompareTo(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
十六进制格式。
doubleval=Math.PI;
Console.WriteLine(val.ToString());
//displays3.14159265358979
Console.WriteLine(val.ToString("
E"
//displays3.141593E+000
F3"
//displays3.142
intval=65535;
x"
//displaysffff
X"
//displaysFFFF
Singleval=0.123F;
p"
//displays12.30%
p1"
//displays12.3%
默认格式化会在数字和百分号之间放入一个空格。
定制方法如下:
其中NumberFormatInfo类是System.Globalization命名空间的一个成员,因此该命名空间必须导入到程序中。
objectmyobj=NumberFormatInfo.CurrentInfo.Clone()asNumberFormatInfo;
NumberFormatInfomyformat=myobjasNumberFormatInfo;
myformat.PercentPositivePattern=1;
myformat));
//displays12.30%;
//displays12.3%;
格式化具有很大的灵活性。
下面的例子演示一个没有意义的货币结构:
doubleval=1234567.89;
int[]groupsize={2,1,3};
objectmyobj=NumberFormatInfo.CurrentInfo.Clone();
NumberFormatInfomycurrency=myobjasNumberFormatInfo;
mycurrency.CurrencySymbol="
#"
//符号
mycurrency.CurrencyDecimalSeparator="
//小数点
mycurrency.CurrencyGroupSeparator="
_"
//分隔符
mycurrency.CurrencyGroupSizes=groupsize;
//输出 #1_234_5_67:
89
C"
mycurrency));
3.2格式化日期
输出形式取决于用户计算机的文化设置。
usingSystem;
usingSystem.Globalization;
publicclassMainClass
{
publicstaticvoidMain(string[]args)
{
DateTimedt=DateTime.Now;
String[]format={"
d"
"
D"
f"
F"
g"
G"
m"
r"
s"
t"
"
T"
u"
U"
y"
dddd,MMMMddyyyy"
ddd,MMMd\"
\"
yy"
dddd,MMMMdd"
M/yy"
dd-MM-yy"
};
Stringdate;
for(inti=0;
i<
format.Length;
i++)
date=dt.ToString(format[i],DateTimeFormatInfo.InvariantInfo);
Console.WriteLine(String.Concat(format[i],"
:
date));
d:
07/11/2004
<
=======输出
D:
Sunday,11July2004
f:
Sunday,11July200410:
52
F:
52:
36
g:
07/11/200410:
G:
m:
July11
r:
Sun,11Jul200410:
36GMT
s:
2004-07-11T10:
t:
10:
T:
u:
2004-07-1110:
36Z
U:
Sunday,11July200402:
y:
2004July
dddd,MMMMddyyyy:
Sunday,July112004
ddd,MMMd"
yy:
Sun,Jul11'
04
dddd,MMMMdd:
Sunday,July11
M/yy:
7/04
dd-MM-yy:
11-07-04
3.3格式化枚举
enumclassmen
ynn=1,
yly=2,
css=3,
C++=4
获取枚举字符串信息如下:
classmenmyclassmen=classmen.yly;
Console.WriteLine(myclassmen.ToString());
//displaysyly
Console.WriteLine(myclassmen.ToString("
//displays2
从系统枚举中获取文本人信息如下:
DayOfWeekday=DayOfWeek.Friday;
//displays"
DayisFriday"
Console.WriteLine(String.Format("
Dayis{0:
G}"
day));
格式化字符串“G”把枚举显示为一个字符串。
StringBuilder类学习笔记
String类的不可改变性使它更像一个值类型而不是一个引用类型。
其副作用是每次执行字符操作时,都会创建一个新的String对象。
StringBuilder类解决了对字符串进行重复修改的过程中创建大量对象的问题。
StringBuilder类的一些属性与方法
Length 属性并不是只读的。
StringBuildersb=newStringBuilder("
Ilivethelanguage"
Console.WriteLine(sb.ToString());
sb.Length=6;
Ilive"
Capacity
属性
描述:
当前为实例分配的字符数量。
默认容量是16,如果将一个字符串作为参数提供给构造函数,容量以最接近2的幂的值。
MaxCapacity
这个实例中可以被分配的字符最大数量。
Append(
) 方法
追加给定值的字符串表示。
StringBuildersb=newStringBuilder();
Console.WriteLine(sb.Capacity+"
\t"
+sb.Length);
sb.Append('
a'
17)
16
0<
==输出
32
17
EnsureCapacity(Intcapacity)
方法
如果当前容量小于指定容量,内存分配会增加内存空间以达到指定容量。
Replace(Charoldchar,Charnewchar)
用newchar替换oldchar。
Replace(Stringoldstring,Stringnewstring)
方法
用newstring替换oldstring。
Replace(Charoldchar,Charnewchar,Int
startpos,Intcount)
从startpos到count-1之间用newchar替换oldchar。
Replace(Stringoldstring,Stringnewstring,Intstartpos,Intcount)
从startpos到count-1之间用newstring替换oldstring。
ToString()
StringBuildersb=newStringBuilder("
Ilivethisgame"
);
Strings1=sb.ToString(
Strings2=sb.ToString(3,4);
live"
在这里第二个ToString()方法调用了String类的Substring()方法
publicStringToString(intstartIndex,intlength)
returnm_StringValue.Substring(startIndex,length);
String类学习笔记
一、String类的常用公共成员
Compare(Strings1,Strings2)
静态方法
功能:
区分大小写比较。
Compare(Strings1,Strings2,BoolignoreCase)
ignoreCase为True,不区分大小写比较。
CompareTo(Strings)
实例方法
对给定字符串与实例字符串执行一次区分大小写与文化信息比较。
Copy(Strings)
返回一个与给定字符串同值的新的字符串。
CopyTo(IntsurceIndex,char[]destination,IntdestIndex,Intcount)
实例方法功能:
此实例中的指定位置复制到Unicode字符数组中的指定位置。
参数:
sourceIndex:
此实例中的字符位置。
destination:
Unicode字符的数组。
destIndex:
destination中的数组元素。
count:
此实例中要复制到destination的字符数。
例程:
publicclassCopyToTest{
publicstaticvoidMain(){
stringstrSource="
changed"
char[]destination={'
T'
'
h'
e'
i'
n'
t'
l'
r'
y'
};
Console.WriteLine(destination);
strSource.CopyTo(0,destination,4,strSource.Length);
strSource="
Adifferentstring"
strSource.CopyTo(2,destination,3,9);
}
输出:
Theinitialarray
Thechangedarray
Thedifferentarray
EndsWith(Strings)
如果实例字符串是以给定的字符串结束,就返回True。
Equals(Strings)
如果实例字符串与给定的对象具有相同的值,就返回True。
Format(IFormatProviderprovider,Stringformat,ParamArrayargs)
format的一个副本,其中格式项已替换为args中相应Object实例的String等效项。
参数
provider:
一个IFormatProvider,它提供区域性特定的格式设置信息。
format:
包含零个或多个格式项。
args:
包含零个或多个要格式化的对象的Object数组。
例如:
stringmyName="
Fred"
String.Format("
Name={0},hours={1:
hh}"
myName,DateTime.Now);
固定文本是“Name=”和“,hours=”,格式项是“{0}”和“{1:
hh}”,值为myName和DateTime.Now。
Replace(Stringoldstring,Stringnewstring)
在实例字符串中用newstring替换所有oldstring。
Split(char[]separator,intcount)
separator:
分隔此实例中子字符串的Unicode字符数组、不包含分隔符的空数组或空引用。
count:
要返回的最大数组元素数。
stringdelimStr="
.:
char[]delimiter=delimStr.ToCharArray();
stringwords="
onetwo,three:
four."
string[]split=null;
split=words.Split(delimiter,4);
foreach(stringsinsplit)
Console.WriteLine("
-{0}-"
s);
one
==输出
two
three
four.
SubString(IntstartPos,Intlength)
从指定位置开始返回一个指定长度的子串。
返回一个对实例字符的引用。
ToString(IFormatProviderformat)
返回一个对实例字符串的引用。
正则表达式学习笔记
(1)
一、System.Text.RegularExpression命名空间
1、
Regex类可以用来创建正则表达式,还提供了许多方法。
如:
Regex.Replace(stringinput,Stringpattern,stringreplacement);
-------RegexOption枚举
IgnoreCase
忽略大小写。
默认情况区分大小写
RightToLeft
从右到左查找输入字符串。
None
不设定标志。
MiltiLine
指定^与$可以匹配行的开