在C#控制台应用程序中乱输入一串字符,怎么查出出现的单词个数,遇到空格或者标点符号或者数字就算一个单

在线求解。。。。。... 在线求解。。。。。 展开
 我来答
sznszbd
2011-02-28 · 超过21用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:63.8万
展开全部
class Program//该程序不完整,你只需少加修改
{
static int num=0;
static void Main(string[] args)
{

Console.WriteLine("请输入一串字符:");
string str = Console.ReadLine();
new Program().GetWordsCount(str);
Console.WriteLine(num+1);

Console.ReadKey();

}
private void GetWordsCount(string str)
{
//空格标点符号,数字
for (int i = 0; i < str.Length; i++)
{
string obj = str[i].ToString();
if (IsNumber(obj) || obj == " " || IsPunctuation(obj))
{
num++;
GetWordsCount(str.Substring(i+1));
}
}
}

//判断是否是数字
private bool IsNumber(string num)
{
bool resu=true ;
try
{
int n = Convert.ToInt32(num);
}
catch (Exception)
{
resu = false;
}
return resu;
}

//判断是否是标点符号
private bool IsPunctuation(string s)
{
bool resu = false;
string charlist = ",。?!";
if (charlist.Contains(s))
{
resu = true;
}
return resu;
}
}
追问
程序不行。虽然没错但是打空格也记进去了。还有开头空格也没考虑到,还是谢谢你哈,
翅膀的初衷
2011-02-28 · TA获得超过1176个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:640万
展开全部
"字符串".Length
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
markzm
2011-02-28 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:17.4万
展开全部
就是连续的1或者1个以上的英文字母,都作为单词。 写个正则表达式。把所有单词都能挑出来的。。

using System;
using System.Text.RegularExpressions;

namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
//定义能匹配单词 do 的表达式
Regex rx = new Regex(@"[A-Za-z]+$", RegexOptions.Compiled | RegexOptions.IgnoreCase);

string[] source = { "How do you do !", "no one !" };

foreach (string s in source)
{
Match match = rx.Match(s);

Console.WriteLine("匹配到的子串为:|{0}|\n在原串的第 {1} 个位置\n子串长度:{2}",
match.Value, match.Index, match.Length);
Console.WriteLine("------------------------------");
}
}
}
}

代码未测试。请自行测试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式