c#中如何除去字符串中的数字

Console.Write("请输入一个字符串");strings=Console.ReadLine();for(inti=0;i<s.Length;i++){if(ch... Console.Write("请输入一个字符串");
string s = Console.ReadLine();
for (int i = 0; i < s.Length; i++)
{
if (char.IsDigit(s[i]))
{
s.Remove(i, 1);
}
Console.WriteLine("数字出现的次数为:" + s);
}

为什么这样写出不来结果呢?
不好意思刚写错了,这是正确的
展开
 我来答
百度网友154139e
推荐于2017-11-25 · TA获得超过413个赞
知道小有建树答主
回答量:295
采纳率:50%
帮助的人:250万
展开全部
方法之一:C#中的字符串有自带的替换方法:
字串变量.Replace("子字串","替换为")
可以用逐一将"0","1","2","3","4","5","6","7","8","9"替换为空字符
例子:

String[] nums = new String[10] {"0","1","2","3","4","5","6","7","8","9"};

String str = "Tom123 is05809 ok746";

for(int i = 0; i < 10; i++)
{
str.Replace(nums[i], ""); //将所有的数字循环替换成为空字符
}

结果为:Tom is ok

希望能帮到你.
追问
恩恩,这个方法不错,但有没有简单一点的办法呢?
为什么我写的方法会不对呢?
追答
回答你问题时你的程序没有附上来,现在看了你的程序,思路是正确的逐一判断字符串中的字

符是否为数字,如果是数字则从这个字符串(数组)中删除此元素。

但写的循环有问题:for (int i = 0; i < s.Length; i++)

这里用s.Length做为for的终点条件,如果循环中用删除s字符中的数字即Remove方法,会自动将删除下标之后的字符向前进位,得s的长度不停的变小,如果字符串存在连续多位数字的情况就会漏掉最后一位没有被判断。用你的程序来模拟一下
S = "ab123bcddg";
结果是:ab3bcddg;
而且s.Remove(i, 1)并未改变s的值,这条表达式的结果是删除i下标元素,但s并未被重新赋值。

按你的思路改了一下你的程序:
Console.Write("请输入一个字符串");

string s = Console.ReadLine();

string k = string.Empty; ; //新的字符串

int iCount = 0; //统计个数

for (int i = 0; i < s.Length; i++)

{
if (char.IsDigit(s[i]))
{
iCount = iCount + 1; //统计数字个数
}

else
{
k = k + s[i]; //将未数字的字符存放到新的字符串中
}
}

Console.WriteLine("数字出现的次数为:" + iCount);
Console.Write(k);
Console.ReadLine();

方法很多,你可以试一下!
kyo941251399
2013-06-20 · TA获得超过3466个赞
知道小有建树答主
回答量:2130
采纳率:0%
帮助的人:1403万
展开全部
Console.Write("输入一个字符串:");    
string str1 = Console.ReadLine();
string str2 = string.Empty;
char[] arr = str1.ToCharArray();
for (int i = 0; i < arr.Length; i++)
{
    if (!(arr[i] >= '0' && arr[i] <= '9'))
    {
        str2 += arr[i];
    }
}
Console.Write("去掉数字后:" + str2);

看看行不行,没调试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式