string类(字符串):
1 空字符串(""),空格(" ")和null的区别:
"a"+""+"b" 为 "ab"
"a"+" "+"b"为 "a b"
2 string和String的区别:小写的string会编译成大写的String,和int与int32的区别一样,
认为是等同的。
3 string实例的声明:
char[] chs=new char[]{‘a‘,‘b‘,‘c‘};
string str=new string(chs);
字符串其实就是一串字符,可看做是字符数组。
4 字符串用索引进行访问:实例名[编号]: str[0] 。
字符串属性(实例名[编号])是只读的,不可修改,字符串的不可变性。
str+="123"; 此时并没有改变字符串,而是重新生成了一个新的字符串。
字符串的间接修改:将其转换成char数组,修改后再转换成字符串。
char[] chs=str.ToCharArray();
char[0]=‘d‘;
str=new string(chs);
5.0 常用的属性和方法:
length 得到字符串的长度
== 判断两个字符串是否相等
5.1 字符窜大小写
string <strName>.ToUpper();
string <strName>.ToLower();
例子:等待用户输入的时候,常不考虑输入的用户名的大小写(或一个程序中规定使用的大小写)
可以将用户的输入全转换成大写或小写再进行比较。
如:console.writeline("输入用户名");
string uid=Console.readline().ToLower();
再将uid与系统中的数据进行比较。
5.2 去掉两端空格
string <strName>.Trim(); 去掉字符串首尾的空格
取得用户输入时,去掉用户输入的空格
TrimStart() 去掉开始的空格
TrimEnd() 去掉结尾的空格
去掉中间的空格
5.3 去掉两端指定的字符
Trim(params char[] trimChars) 去掉首尾出现在字符数组中的字符
例子:string str="abcdfebca";
str.Trim(‘a‘,‘b‘,‘c‘);
去掉首尾字符数组中的abc,与数组中的字符 顺序无关
5.4 字符串的比较
Compare()方法
int string.Compare(string str1,string str2,bool ignoreCase)
比较的两个字符串str1和str2 ,bool表示是否区分大小写,true为不区分大小写,默认为false,
按照字典排序比较:str1>str2 ,返回1 相等返回0 否则返回-1
Equal() 方法
bool <strName>.Equals(string str,StringComparison.OrdinalIgnoreCase);
表示同str比较,并忽略大小写。相等返回true,否则返回false
string.Equals(str1,str2)
5.5 字符串的合并与分割
合并Join方法,Join(str,string []str) 或Join("",string []strs)
用str将字符串数组元素连接或将字符串数组元素直接连接
例子: string [] strs={"我","爱","你"}
string.Join("|",strs)
分割Split方法
string[] Split( params char[] separator)
string [] Split( char[] separator,StringSplitOptions options)
当取值为StringSplitOptions.RemoveEmptyEntries时表示返回不包括含有空字符串("")的数组元素
它去掉的是空字符串项(占用内存空间),不是空格项。
例子:string path=@"C:\Windows\System32\MyFile\1.avi";
分析出该文件的文件名和各个文件夹
string [] strs= path.Split(‘\\‘); 两个\表示转义
例子: string str="I have a dream!!!what about you?";
string[] strs=str.Split(new char[]{‘‘,‘!‘,‘?‘},StringSplitOptions.RemoveEmptyEntries);
例子:string str="a b c d h k m n";
string[] strs=str.Split(new char[] {‘‘},StringSplitOptions.RemoveEmptyEntries)
str=string.Join("",strs);
5.6 得到子串
Substring(int index,int length)
表示 Substring(开始位置,[截取的字符串的长度]) 若截取的长度超出长度范围,报异常
Substring(int index) 从index开始截取所有字符串
例子: string str="我是一个走马灯";
while(true)
{
Console.clear();
str=str.Substring(1)+str[0];
Console.writeline(str);
System.Threading.Thread.Sleep(200);
}
System.Diagnostics.Process.Start("notepad");启动新的进程
5.7 字符串的查找
Contains()方法
str.Contains(string str1) 是否包含子串
IndexOf方法
int IndexOf(str)方法 得到第一个出现的子串的索引 ,找不到返回-1 与Substring()结合使用
IndexOf(string str,int startindex) 定义查找的开始位置
int LastIndexOf() 得到最后一个出现的子串的索引。
IndexOfAny方法
int <strName>.IndexOfAny(char[] anyof);
寻找 字符数组中所有的字符,返回出现的第一个的位置
重载:int <strName>.IndexOfAny(char[] anyof,int startIndex);
找到所有的位置:
string str="abcdabcdabab";
int position=-1;
do
{
position=str.IndexOfAny(new char[] {‘b‘,‘a‘},position+1)
if(position!=-1)
{
Console.writeline("b或a的位置是{0}",position);
}
}
while(position!=-1)
5.8 字符串的插入 移除和替换
Insert(int index,string str)
Remove(int index)
重载: Remove(int index,int count)
Replace(string oldstr,string newstr)
例子:string date="2014年4月4日";
date =date.Replace("年","-").Replace("月","-").Replace("日","");
5.9 判断结束和开始
bool StartWith(string str)
bool EndWith(string str)
例子:信息的搜索与匹配
string str="天黑黑.mp3";
if( str.EndWith(".mp3"))
{
Console.writeline("下载歌曲");
}
5.10
String.Format() 将几个子字符串拼接并返回.Console.writeline便调用了此方法。
Console.writeline(string.Format())
string str= String.Format("{0}{1}{2}","字符串","123","a");
此时str为"字符串123a"
6 随机数Random类,用来产生随机数的类
Random r=new Random(); 创建能产生随机数的对象
int i =r.Next() 调用对象的Next方法产生随机数,并返回
无参 0~int.MaxValue
有一个参数,为Max 0~max
有两个参数,为min和Max min~max
(右边取不到)
黑马程序员---string类的使用,布布扣,bubuko.com
黑马程序员---string类的使用
原文:http://blog.csdn.net/zhangsu_/article/details/23854997