黑马程序员技术交流社区
标题:
计算字符串中每种字符出现的次数
[打印本页]
作者:
我的专属
时间:
2014-3-20 13:11
标题:
计算字符串中每种字符出现的次数
.
计算字符串中每种字符出现的次数,“Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……
作者:
threederek
时间:
2014-3-20 14:50
/// 计算字符串中子串出现的次数
/// </summary>
/// <param name=”str”>字符串</param>
/// <param name=”ch”>字符</param>
/// <returns>出现的次数</returns>
static int SubstringCount(string str, char ch)
{
if (str.Contains(ch))
{
string strReplaced = str.Replace(ch.ToString(), "");
return (str.Length - strReplaced.Length);
}
return 0;
}
作者:
shangxin
时间:
2014-3-20 15:33
static void Main(string[] args)
{
//将字符串转换为小写
string str = "Welcome to Chinaworld".ToLower();
//将字符串转换成字符数组
char[] ch = str.ToCharArray();
//用来计数
int count = 0;
//键值对,记录每个字符出现的次数
Dictionary<char, int> dic = new Dictionary<char, int>();
for (int i = 0; i < ch.Length; i++)
{
for (int j = i; j < ch.Length; j++)
{
//判断两个字符是否相等,相等count加1
if (ch[i] == ch[j])
{
count++;
}
}
//判断字符是否存在
if (!dic.ContainsKey(ch[i]))
{
dic.Add(ch[i], count);
}
//计数器清空
count = 0;
}
//遍历
foreach (KeyValuePair<char,int> kvp in dic)
{
Console.Write("{0},{1} ", kvp.Key, kvp.Value);
}
Console.ReadKey();
}
}
}
仅供参考,有不对的可以指正,谢谢!
作者:
我的专属
时间:
2014-3-20 22:17
shangxin 发表于 2014-3-20 15:33
static void Main(string[] args)
{
//将字符串转换为小写
谢谢你啊,:)
作者:
清风木扬
时间:
2014-3-27 13:46
public class daytest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="Welcome to Chinaworld";
StringBuilder sb = getCharNum(str);
System.out.println(sb);
}
public static StringBuilder getCharNum(String str) {
//TreeMap可以排序
Map<String,Integer> map=new TreeMap<String,Integer>();
for(int i=0;i<str.length();i++)
{
int itc=str.charAt(i);
//只要字母,大小写转换。
if(itc>'z' || (itc<'a'&& itc>'z') || itc<'A' )
continue;
if(itc>97 && itc<122 && map.containsKey(Character.toString((char)(itc-32))))
itc-=32;
if(itc>65 && itc<87 && map.containsKey(Character.toString((char)(itc+32))))
itc+=32;
String s=Character.toString((char)itc);
int num=0;
if(map.containsKey(s))
num=map.get(s);
num++;
//相同Key时,只修改Values,不新增。当key不时才新增。
map.put(s, num);
}
StringBuilder sb=new StringBuilder();
for(Map.Entry<String, Integer> entery:map.entrySet())
{
sb.append("\""+entery.getKey()+entery.getValue()+"\"," );
}
if(sb.length()>0)
sb=sb.deleteCharAt(sb.length()-1);
return sb;
}
}
运行结果 "W2","a1","c2","d1","e2","h1","i1","l2","m1","n1","o3","r1","t1"
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2