如何从一个字符串中取取得其中的数字?
比如这样一个字符串stringstr=1234qq;如何取得1234?前提是一开始不知道数字占了4位...
比如这样一个字符串string str=1234qq;如何取得1234?前提是一开始不知道数字占了4位
展开
14个回答
展开全部
这样吧,你先分割这个字符串,然后把数字找出来,在合成新的字符串。
string s = "123h4";
char[] chars = s.ToCharArray();
string sum = "";
foreach (char ch in chars)
{
if (char.IsDigit(ch))
{
sum = sum + ch;
}
}
Console.WriteLine(sum);
Console.ReadKey();
在控制台加这段代码就可以了
我经过调试的 效果还行,正则表达式更好,我忘了怎么写了
这段代码可以实现你要的效果
string s = "123h4";
char[] chars = s.ToCharArray();
string sum = "";
foreach (char ch in chars)
{
if (char.IsDigit(ch))
{
sum = sum + ch;
}
}
Console.WriteLine(sum);
Console.ReadKey();
在控制台加这段代码就可以了
我经过调试的 效果还行,正则表达式更好,我忘了怎么写了
这段代码可以实现你要的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
黑简单哈,比如:
static void Main(string[] args)
{
//字符串
var str = "1234qq1q2w23ac1";
//筛选数字
var num = from number in str
where char.IsNumber(number)
select number;
//打印
foreach (var item in num)
{
Console.WriteLine(item);
}
}
static void Main(string[] args)
{
//字符串
var str = "1234qq1q2w23ac1";
//筛选数字
var num = from number in str
where char.IsNumber(number)
select number;
//打印
foreach (var item in num)
{
Console.WriteLine(item);
}
}
追问
可是只是想取出前面的数字呢1234
追答
你有什么要求?只取第一次出现的连续数字?还是怎么的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
string str = "1234qq";
List<long> l = new List<long>();
MatchCollection matchs = Regex.Matches(str, @"\d+");
foreach (Match m in matchs)
{
try
{
l.Add(long.Parse(m.Groups[0].Value));
}
catch (Exception e)
{
Console.WriteLine("出错了:" + e.Message);
}
}
l.ForEach(u => Console.Write("{0} ", u));
Console.WriteLine();
Console.ReadKey();
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
string str = "1234qq";
List<long> l = new List<long>();
MatchCollection matchs = Regex.Matches(str, @"\d+");
foreach (Match m in matchs)
{
try
{
l.Add(long.Parse(m.Groups[0].Value));
}
catch (Exception e)
{
Console.WriteLine("出错了:" + e.Message);
}
}
l.ForEach(u => Console.Write("{0} ", u));
Console.WriteLine();
Console.ReadKey();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string str = "1234qq22cc11";
string pattern = "[0-9]*";
string output = "";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern);
System.Text.RegularExpressions.MatchCollection matches = reg.Matches(str);
foreach (System.Text.RegularExpressions.Match match in matches)
{
output += match.Value + "\n";
}
MessageBox.Show(output);
string pattern = "[0-9]*";
string output = "";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern);
System.Text.RegularExpressions.MatchCollection matches = reg.Matches(str);
foreach (System.Text.RegularExpressions.Match match in matches)
{
output += match.Value + "\n";
}
MessageBox.Show(output);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i=0
string numStr
while(true){
if(str[i] == "数字"){
numStr+=str[i]
}
else if(numStr!=""){
//取得一个数字
}
i++
}
string numStr
while(true){
if(str[i] == "数字"){
numStr+=str[i]
}
else if(numStr!=""){
//取得一个数字
}
i++
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询