C#判斷單詞個數(shù)方法總結(jié)
更新時間:2018年03月25日 14:23:19 投稿:laozhang
我們給大家總計了C#中判斷英文單詞個數(shù)的方法以及排序的技巧,對此有需要的朋友可以測試下。
方法一:
判斷英文單詞個數(shù):
using System;
namespace FindWord
{
class Program
{
static void Main(string[] args)
{
string space = " ";
string str = "hello world" + space;
int count = 0;
bool start = false;
for (int i=0;i<str.Length;i++)
{
if (Char .IsLetter(str[i]))
{
start = true;
}
if (!Char.IsLetter(str[i])&&start)
{
count++;
start = false;
}
}
Console.WriteLine(count);
Console.ReadLine();
}
}
}
方法二:
C#統(tǒng)計英文字符串中單詞個數(shù)思路如下:
1.使用的Hashtable(高效)集合,記錄每個單詞出現(xiàn)的次數(shù)
2.采用ArrayList對Hashtable中的Keys按字母序排列
3.排序使用插入排序(穩(wěn)定)
public void StatisticsWords(string path) {
if (!File.Exists(path))
{
Console.WriteLine("文件不存在!");
return;
}
Hashtable ht = new Hashtable(StringComparer.OrdinalIgnoreCase);
StreamReader sr = new StreamReader(path, System.Text.Encoding.UTF8);
string line = sr.ReadLine();
string[] wordArr = null;
int num = 0;
while (line.Length > 0)
{
// MatchCollection mc = Regex.Matches(line, @"\b[a-z]+", RegexOptions.Compiled | RegexOptions.IgnoreCase);
//foreach (Match m in mc)
//{
// if (ht.ContainsKey(m.Value))
// {
// num = Convert.ToInt32(ht[m.Value]) + 1;
// ht[m.Value] = num;
// }
// else
// {
// ht.Add(m.Value, 1);
// }
//}
//line = sr.ReadLine();
wordArr = line.Split(' ');
foreach (string s in wordArr)
{
if (s.Length == 0)
continue;
//去除標(biāo)點
line = Regex.Replace(line, @"[\p{P}*]", "", RegexOptions.Compiled);
//將單詞加入哈希表
if (ht.ContainsKey(s))
{
num = Convert.ToInt32(ht[s]) + 1;
ht[s] = num;
}
else
{
ht.Add(s, 1);
}
}
line = sr.ReadLine();
}
ArrayList keysList = new ArrayList(ht.Keys);
//對Hashtable中的Keys按字母序排列
keysList.Sort();
//按次數(shù)進行插入排序【穩(wěn)定排序】,所以相同次數(shù)的單詞依舊是字母序
string tmp = String.Empty;
int valueTmp = 0;
for (int i = 1; i < keysList.Count; i++)
{
tmp = keysList[i].ToString();
valueTmp = (int)ht[keysList[i]];//次數(shù)
int j = i;
while (j > 0 && valueTmp > (int)ht[keysList[j - 1]])
{
keysList[j] = keysList[j - 1];
j--;
}
keysList[j] = tmp;//j=0
}
//打印出來
foreach (object item in keysList)
{
Console.WriteLine((string)item + ":" + (string)ht[item]);
}
}
相關(guān)文章
C#使用TCP協(xié)議實現(xiàn)數(shù)據(jù)發(fā)送和接受的方法
這篇文章主要介紹了c#使用TCP協(xié)議實現(xiàn)數(shù)據(jù)發(fā)送和接受,使用TCP協(xié)議實現(xiàn)數(shù)據(jù)的發(fā)送和接受包括客戶端和服務(wù)端兩個部分,本文通過實例代碼介紹的非常詳細,需要的朋友可以參考下2024-04-04
C#查詢SqlServer數(shù)據(jù)庫并返回單個值的方法
這篇文章主要介紹了C#查詢SqlServer數(shù)據(jù)庫并返回單個值的方法,涉及C#操作SQLServer數(shù)據(jù)庫查詢的相關(guān)技巧,需要的朋友可以參考下2015-06-06

