C#求字符串中第一个只出现一次的字符
来源:互联网 发布:科拉传奇 知乎 编辑:程序博客网 时间:2024/06/13 23:30
using System;
using System.Collections.Generic;
using System.Collections;//使用Hashtable时,必须引入这个命名空间
using System.Linq;
using System.Text;
class Program
{
//方法1:
public static char FirstNotRepeatingChar(string str)
{
char c='\0';
if (str == null)
return '\0';
else
{
Hashtable hshTable = new Hashtable(); //用哈希表来存储字符与其对应出现的个数
char[] strChar = str.ToCharArray();
for (int i = 0; i < str.Length; i++)
{
if (hshTable.ContainsKey(strChar[i])) //如果已存在该字符,则该字符的个数加1
{
hshTable[strChar[i]] = int.Parse(hshTable[strChar[i]].ToString()) + 1;
}
else //否则,该字符的个数置为1
{
hshTable.Add(strChar[i], 1);
}
}
List<char> list = new List<char>();
foreach (DictionaryEntry de in hshTable) //取出只出现一次的字符
{
if (de.Value.ToString() == "1")
{
list.Add((char)de.Key);
}
}
if (list != null)
{
for (int x = 0; x < str.Length; x++) //取出首个只出现一次的字符
{
foreach (char ch in list)
{
if (strChar[x] == ch)
{
c = strChar[x];
break;
}
}
if (c != '\0')
{
break;
}
//return strChar[x];
}
}
return c;
}
}
//方法2
public static char findFirstAndOnce(string str)
{char c = '\0';
ArrayList Clist = new ArrayList(); //存储字符串中包含的所有不重复的字符
char[] strChar=str.ToCharArray();
int[] strInt=new int[256]; //所有字符的个数
for (int x = 0; x < str.Length; x++)
{
if (Clist.Contains(strChar[x]))
{
strInt[Clist.IndexOf(strChar[x])]++;//如果已含有该字符,则将该字符的个数加1
}
else
{
Clist.Add(strChar[x]);
strInt[Clist.Count-1]=1;//如果不包含该字符,则将该字符的个数置为1
}
}
for (int j = 0; j < strInt.Length; j++)
{
if (strInt[j] == 1)
{
c = (char)Clist[j];//取出第一个只出现一次的字符
break;
}
}
return c;
}
static void Main(string[] args)
{
string str = "asas1111212wqerwteqrtrm";
//char x = findFirstAndOnce(str);
//char x = FirstNotRepeatingChar(str);
//char x = firstAndOnce(str);
char x = findFirstAndOnce(str);
if (x.Equals('\0'))
{
Console.WriteLine("没有只出现一次的字符");
}
else
Console.WriteLine("第一个只出现一次的字符是:{0}", x);
}
}
- 求字符串中第一个只出现一次的字符
- C#求字符串中第一个只出现一次的字符
- 求字符串中字符只出现一次的的第一个字符
- 剑指offer—求字符串中第一个只出现一次的字符
- JAVA实现 剑指offer—求字符串中第一个只出现一次的字符
- 找出字符串中只出现一次的第一个字符
- 查找字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 字符串中第一个只出现一次的字符
- 字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 字符串中第一个只出现一次的字符
- 寻找字符串中只出现一次的第一个字符
- 字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- Android Media (Audio) Framework Analyse
- RIM fully committed to the consumer market
- Oracle 表空间利用率及对象大小查询
- C++虚继承和多重继承时的指针类型转换
- 关于MyEclipse在载入CVS中的工程后,工程无法运行的解决
- C#求字符串中第一个只出现一次的字符
- SOHO中国董事长潘石屹的昨天今天和明天
- web service session
- JQuery DataGrid 中文文档
- 关于c++检测内存泄露相关知识(windows程序调试)
- Lamp apache 提示You don't have permission to access /x.css on this server.如何解决
- Eclipse 如何获取工程的句柄及名字
- dwr session error 的问题
- 【威佐夫博奕】POJ 1067