C#(控制输入输出)

输入一行英文文本(即英文及英文标点符号,输入别的会出错提示),识别文本中单词总个数以及每个单词的个数并输出

 

 

 没考虑符号周全,就想着空格分割了。。嘿嘿,改用正则算了

 

using System;
using System.Linq;
using System.Text.RegularExpressions;
using System.IO;
using System.Text;
namespace ConsoleApp34
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("输入英文文本:");
            Stream steam = Console.OpenStandardInput();
            Console.SetIn(new StreamReader(steam, Encoding.Default, false, 5000));
            string s = Console.ReadLine().ToLower();

            MatchCollection mc = Regex.Matches(s, @"[a-z\d]+", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            Console.WriteLine("单词总数:" + mc.Count);
            
            var grp = mc.Cast<Match>().GroupBy(i => i.Groups[0].Value).OrderByDescending(i => i.Count()).ThenBy(i=>i.Key);
            foreach (var g in grp)
            {
                Console.WriteLine(g.Key + ":" + g.Count());
            }
            Console.Read();
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //调用
            List<string> ls = new List<string>();
            string stra = "";
            Console.WriteLine("请输入字符:");
            stra = Console.ReadLine();
            foreach (char c in stra)
            {
                ls.Add(c.ToString());
            }
            int num = 0;
            int i = 0;
            int[] a = new int[100];
            List<string> newls = new List<string>();
            foreach (string str in ls)
            {
                if (str != " ")
                {
                    i++;
                }
                if (str == " ")
                {
                    if(i != 0)
                    {
                        a[num] = i;
                        num++;
                        i = 0;
                    }
                }
            }
            if (i != 0)
            {
                a[num] = i;
                num++;
                i = 0;
            }
            string ans = "共有 "+ num.ToString()+" 个单词:";
            int k = 0;
            for (int j=0;j<num;j++)
            {
                k = j + 1;
                ans += "第"+k.ToString() + "单词有" + a[j].ToString() + "个字母;";
            }
            Console.WriteLine(ans);
        }
    }
}

 

这是效果