按照下面的思路,如果input里面有4个甚至更多整数时(例如“12,3,3,4”),该怎样提取呢?可以赏的分不多,还请各位热心帮忙,谢谢
input="12,3,3"
int commaPos1=input.IndexOf(",");
int commaPos2=input.LastIndexOf(",");
int A=Convert.ToInt32(input.Substring(0,commaPos1));
int B=Convert.ToInt32(input.Substring(commaPos1+1,commaPos2-commaPos1-1));
int C=Convert.ToInt32(input.Substring(commaPos2+1,input.Length-commaPos2-1));另外,我编写的控制台程序,输出窗口在输出结果后立即消失了,而没有“press ankey to continute",为什么呢?
input="12,3,3"
int commaPos1=input.IndexOf(",");
int commaPos2=input.LastIndexOf(",");
int A=Convert.ToInt32(input.Substring(0,commaPos1));
int B=Convert.ToInt32(input.Substring(commaPos1+1,commaPos2-commaPos1-1));
int C=Convert.ToInt32(input.Substring(commaPos2+1,input.Length-commaPos2-1));另外,我编写的控制台程序,输出窗口在输出结果后立即消失了,而没有“press ankey to continute",为什么呢?
关于Split的更详细的参数可以看String类的Split方法解释。
string[] my = input.Split(',');
for(int i=0;i<my.Length ;i++)
{
Console.WriteLine(Convert.ToInt32(my[i]));
Console.ReadKey(); }
using System.Collections.Generic;namespace Demo {
class Program {
static void Main() {
string input = "12,3,3,4";
foreach (int i in GetInts(input)) {
Console.WriteLine(i);
}
Console.WriteLine("Press any key to continue");
Console.ReadKey(true);
} public static IList<int> GetInts(string input) {
List<int> result = new List<int>();
if (!string.IsNullOrEmpty(input)) {
string[] splits = input.Split(',', ','); foreach (string split in splits) {
int temp;
if (int.TryParse(split.Trim(), out temp)) {
result.Add(temp);
}
}
}
return result;
}
}
}
把字符串分割吧...再逐一取出来好了..IndexOf只是取出第一个,号的位置..
string[] splitNum = input.split(new char[]{','});for(int i = 0; i < splitNum.Length; i++)
{
//... splitNum[i];
}
用Split这个方法就好了。
窗口立即消失的问题,你在最后加上一句Console.ReadLine();就可以了
ps:这么多热心人,不知道怎样分配给分了...