字符串的处理。Split(分割),Substring(截取),Contains(包含),Replace(替换),StartsWith,EndsWith,.splitstartswith
分享于 点击 39322 次 点评:282
字符串的处理。Split(分割),Substring(截取),Contains(包含),Replace(替换),StartsWith,EndsWith,.splitstartswith
<1>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 字符串的处理
{
class Program
{
static void Main(string[] args)
{
//字符串定位========================================IndexOf
Console.WriteLine("abcd".IndexOf("c")); //查找“c”在abcd中的索引值(位置) ,输出:2
Console.WriteLine("asdfjsdfjgkfjgdddd".IndexOf('d', 0));//从前向后定位, 从第0个字符串开始定位, ‘d’第一次出现的位置(索引值),输出 2
Console.WriteLine("asdfjsdfjgkfjgdddd".IndexOf('d', 2));//从前向后定位, 从第2个字符串开始定位, ‘d’第一次出现的位置(索引值),输出 2
Console.WriteLine("asdfjsdfjgkfjgdddd".IndexOf('d', 5));//从前向后定位, 从第5个字符串开始定位, ‘d’第一次出现的位置(索引值),输出 6
Console.WriteLine("asdfjsdfjgkfjsdddd".IndexOf("js",0));//从前向后定位, 从第0个字符串开始定位, ‘js’第一次出现的位置(索引值),输出 4
//字符串定位========================================LastIndexOf
Console.WriteLine("abdcfgcd".LastIndexOf("c")); //从前往后定位,从第0个字符串开始定位,‘c’最后一个出现的位置,输出 6
Console.WriteLine("abdcfgcdd".LastIndexOf("c",7));//从前往后定位,从第7个字符串开始定位,‘c’最后一个出现的位置,输出 "空格" 即找不到
//大小写转换========================================ToUpper,ToLower
string s = "abc";
string s2 = s;
s = s.ToUpper(); //得到字符串的大些形式。注意:这里并不是改变了字符串的内容,而是生成一个新的全部变为大些的字符串,然后再用string变量s指向这个新的字符串。(s之前是指向"abc",现在指向的是"ABC")
Console.WriteLine(s); //输出"ABC"
Console.WriteLine(ReferenceEquals(s, s2));// 输出false 。 ReferenceEquals是判断s与s2是否源于相同的引用
s = s.ToLower(); //得到字符串的小写形式。
Console.WriteLine(s); //输出abc
//注意字符串是不可变的(因为他们已经分配到内存中,无法改变),所以这些函数都不会直接改变字符串的内容,而是把修改后的字符的值通过函数返回值的形式返回,
//去掉字符串左右两边的空格 ===============================================Trim
string s = "a b";
Console.WriteLine(s);
string str1 = " |ab| ";
string str2 = "|ab|";
Console.WriteLine(Equals(str1, str2));//输出false
Console.WriteLine(Equals(str1.Trim(), str2.Trim()));// 输出true
// 字符串的对比(忽略大小写)=======================Equals , ReferenceEquals
bool b = "abc".Equals("ABC", StringComparison.OrdinalIgnoreCase); //StringComparison是一个枚举,它有几个值,其中最常用的一个值就是OrdinalIgnoreCase 它的意思是:忽略比较字符串的大小写。
Console.WriteLine(b); //输出true
Console.WriteLine(ReferenceEquals("abc", "abc"));//输出true 对比两个字符串是否源于相同的引用。
//字符串的分割 ========================================== Split
//Split有5个重载方法,其中参数有可变参数和不可变的数组参数。对于不可变的数组参数,必须要用 new char[]{...}或new string[]{...}的这种形式来使用
string s = "aaa,bbb,ccc,ddd|eee|ooo.mmm..www";
string[] str = s.Split(','); //将字符串s以逗号(,)的形式分割。同时Sqlit还可以以多个字符进行分割,请看下面
string[] str = s.Split(',', '|', '.'); //将字符串s以逗号(,)和竖线(|)和点(.)的形式进行分割
//不可变的数组参数。有char类型的数组,当然也有string 类型的数组参数,就不一一列举了例子了。
string[] str2 = s.Split(new char[] { ',', '.', '|' }, StringSplitOptions.RemoveEmptyEntries); //StringSplitOptionss是一个枚举,它有两个值,其中比较常用的值RemoveEmptyEntries表示"返回不包含有空字符串的元素数组"
for (int i = 0; i < str.Length; i++)
{
Console.WriteLine(str[i]);
}
for (int i = 0; i < str2.Length; i++)
{
Console.WriteLine(str2[i]);
}
//以默认编码(Encoding.Default)的形式读取e盘下的1.txt文件
string[] readFile = System.IO.File.ReadAllLines(@"e:\1.txt", Encoding.Default);
foreach (string str in readFile)
{
string[] split = str.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);//StringSplitOptionss是一个枚举,它有两个值,其中比较常用的值RemoveEmptyEntries表示"返回不包含有空字符串的元素数组"
foreach (string spl in split)
{
Console.WriteLine(spl);
}
}
//截取字符串 ============================================substring
String.SubString(int index, int length)
//index:开始位置,从0开始
//length:你要取的子字符串的长度
string s1 = "1fdljld fh fdfhdnfld f1";
string s2 = s1.Substring(1, s1.Length - 1 - 1);
char[] chars = s2.ToCharArray(); //因为字符串是不可变的,所以这里将字符串拆分为字符到数组chars
for (int i = 0; i < chars.Length; i++)
{
chars[i] = '*'; //在这里将数组的每一项都替换为*
}
s2 = new string(chars); //将chars字符数组组成字符串 new string()还有8个重载函数其中s2=new string ('f',5);就是构建一个为fffff的字符串。//string str = new string("abc".ToCharArray());//相当于string str=new string(new char[]{'a','b','c'});
string str = s1.Substring(0, 1) + s2 + s1.Substring(s1.Length - 1); //最后合并整个字符串。
Console.WriteLine(str); //输出结果是: 1**************1
//我想留住s1前面一位与最后一位,其它的替换成*字符,要怎么做呢?
string s1 = "1fdljld fh fdfhdnfld f1";
char[] ch1 = s1.ToCharArray();
for (int i = 0; i < ch1.Length; i++)
{
if (i == ch1.Length - 1 - 1)
{
break;
}
ch1[i + 1] = '*';
}
string str1 = new string(ch1);
Console.WriteLine(str1);
//替换字符串 ===========================================Replace
string s = "许多人,许多事,许多渴求与憧憬";
s = s.Replace("许多", "好多"); //将s字符串里的"许多"替换成 "好多"
Console.WriteLine(s);
//包含=============================================================contains
string s = "习近平雾霾天在北京南锣鼓巷视察";
if (s.Contains("习近平")) //如果字符串s里包含"习近平"
{
Console.WriteLine("含有敏感词汇,请文明用语,否则枪毙");
}
//判断一个字符串以某一个子字符串开头或者结尾,=============StartsWith , EndsWith
string s = "http://www.cctv.cn";
if (s.StartsWith("http://") || s.StartsWith("https://")) //判断s字符串是否以"http://"或者"https://"开头
{
if (s.EndsWith(".cn")) //判断s字符串是否以".cn"结尾
{
Console.WriteLine("这是一个中国域名的网址");
}
else
{
Console.WriteLine("这是一个国际域名网址");
}
}
else
{
Console.WriteLine("这不是一个网址");
}
string s = "习近平雾霾天在北京南锣鼓巷视察,然后习近平又去了昌平区视察";
Console.WriteLine(s.IndexOf("习近平"));//输出0 输出子字符串第一个字符第一次出现的位置。如果子字符串不存在就返回-1;
Console.WriteLine(s.LastIndexOf("习近平"));//输出18 输出子字符串第一个字符最后一次出现的位置,如果子字符串不存在就返回-1;
//以上这段代码可以查询一个字符串是否包含某些子字符串。(有Contains的功效哦。哈哈)
//对比两个数,取最大值和最小值=======================================Max , Min
int i = 100;
int j = 50;
Console.WriteLine(Math.Min(i, j));//取两个数中的最小值
Console.WriteLine(Math.Max(i, j)); //取两个数中的最大值
Console.ReadKey();
}
}
}
string s ="hellowworld";
int count =s.Count(w => w =='o');//查询字母o出现的次数
Console.WriteLine(count);
相关文章
- 暂无相关文章
用户点评