還在學習中,我想把每天學到的一些知識記下來,這樣可以加深記憶,以后也方便自己復習吧,加油!
目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設(shè)計、四方臺網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StringOperate
{
///
/// 字符串 操作類
///
class StrOperate
{
private static int count; //次數(shù)
public static int Count
{
get { return StrOperate.count; }
set { StrOperate.count = value; }
}
private string strContent; //字符串
public string StrContent
{
get { return strContent; }
set { strContent = value; }
}
private char searchChar; //需要查詢的字符
public char SearchChar
{
get { return searchChar; }
set { searchChar = value; }
}
///
/// 定義構(gòu)造函數(shù),初始化數(shù)據(jù)
///
public StrOperate(string strContent, char searchChar)
{
this.strContent = strContent;
this.searchChar = searchChar;
}
#region //查詢字符串中出現(xiàn)指定字符的次數(shù)
#region 方法一
///
/// 在C#中,字符串就是一個字符數(shù)組,
/// 通過循環(huán)遍歷字符數(shù)組中的每個元素,
/// 判斷得到出現(xiàn)指定Char的次數(shù)
///
///
public int SearchCharCount_1()
{
count = 0;
//循環(huán)遍歷string中的每個元素(字符)
for (int i = 0; i < strContent.Length; i++)
{
//判斷是否等于指定的字符
if (strContent[i] == searchChar)
{
//如果等于,次數(shù)加1
count++;
}
}
//返回次數(shù)
return count;
}
#endregion
#region 方法二
///
/// 通過IndexOf()函數(shù)和Substring()函數(shù),獲得次數(shù)
///
///
public int SearchCharCount_2()
{
count = 0;
string strCont = strContent;
while (true)
{
//通過IndexOf()函數(shù) 獲得當前字符串中首次出現(xiàn)指定字符(searchChar)的位置
int indexChar = strCont.IndexOf(searchChar);
//如果出現(xiàn)的位置大于等于0,說明存在這個字符
if (indexChar >= 0)
{
//那么次數(shù)加1
count++;
//字符串更新(通過Substring()函數(shù)截取上次出現(xiàn)指定字符后面的字符串,以便下次搜索)
strCont = strCont.Substring(indexChar+1);
}
//否則出現(xiàn)的位置小于0,則說明當前字符串中不存在要搜索的字符了
else
{
//結(jié)束循環(huán)
break;
}
}
//返回次數(shù)
return count;
}
#endregion
#region 方法三
///
/// 通過Split()函數(shù),獲得次數(shù)
///
///
public int SearchCharCount_3()
{
count = 0;
//按照指定的字符對字符串進行拆分(那么有多少個字符就會拆分多少次)
string[] strs = strContent.Split(searchChar);
//for (int i = 0; i < strs.Length; i++)
//{
// Console.WriteLine("-" + strs[i] + "-");
//}
count = strs.Length - 1;
Console.WriteLine("Lenght = " + strs.Length);
return count;
}
#endregion
#region 方法四
///
/// 通過LastIndexOf()函數(shù)和Substring()函數(shù),獲得次數(shù)
///
///
public int SearchCharCount_4()
{
count = 0;
string strCont = strContent;
while (true)
{
//通過IndexOf()函數(shù) 獲得當前字符串中首次出現(xiàn)指定字符(searchChar)的位置
int indexChar = strCont.LastIndexOf(searchChar);
//如果出現(xiàn)的位置大于等于0,說明存在這個字符
if (indexChar >= 0)
{
//那么次數(shù)加1
count++;
//字符串更新(通過Substring()函數(shù)截取上次出現(xiàn)指定字符后面的字符串,以便下次搜索)
strCont = strCont.Substring(0,indexChar);
}
//否則出現(xiàn)的位置小于0,則說明當前字符串中不存在要搜索的字符了
else
{
//結(jié)束循環(huán)
break;
}
}
//返回次數(shù)
return count;
}
#endregion
#region 方法五
///
/// 通過indexOf()、LastIndexOf()和Substring()函數(shù)
///
///
public int SearchCharCount_5()
{
count = 0;
string strCont = strContent;
while (true)
{
int indexof = strCont.IndexOf(searchChar);
int lastIndexof = strCont.LastIndexOf(searchChar);
if (indexof != lastIndexof)
{
count += 2;
strCont = strCont.Substring(indexof + 1, lastIndexof - 1 - indexof);
//bacdefa
//0123456
}
else
{
break;
}
}
return count;
}
#endregion
#region 方法六
///
/// 使用string.ToArray()把字符串轉(zhuǎn)換成一個字符數(shù)組,在判斷
///
///
public int SearchCharCount_6()
{
count = 0;
char[] chars = strContent.ToArray();
for (int i = 0; i < chars.Length; i++)
{
if(chars[i] == searchChar)
{
count++;
}
}
return count;
}
#endregion
#endregion
}
}