提取用逗号分隔的字符串部分

时间:2015-03-17 10:04:07

标签: c# string extract comma

有人可以帮助我将字符串提取为3个不同的变量。

来自用户的输入将采用此格式13,G,true。 我想将号码存储在int,将chartrue中的G存储到string

但我不知道如何指定逗号位置,因此逗号之前或之后的字符可以存储在另一个变量中。 我不允许使用LastIndexOf方法。

我是编程新手。

5 个答案:

答案 0 :(得分:5)

string msg = "13,G,true";
var myArray = msg.Split(",");

// parse the elements
int number;
if (!Int32.TryParse(myArray[0], out number) throw new ArgumentException("Whrong input format for number");
string letter = myArray[1];
string b = myArry[2];

// or also with a boolean instead
bool b;
if (!Int32.TryParse(myArray[2], out b) throw new ArgumentException("Whrong input format for boolean");

答案 1 :(得分:1)

var tokens = str.Split(",");         //Splits to string[] by comma
var first = int32.Parse(tokens[0]);  //Converts first string to int
var second = tokens[1][0];           //Gets first char of the second string
var third = tokens[2];        

但请注意,您还需要验证输入

答案 2 :(得分:1)

使用String.Split

string str='13,G,true';
string[] strArr=str.Split(',');

int32 n=0,intres=0;
char[] charres = new char[1];
string strres="";
if(!Int32.TryParse(strArr[0], out n))
{
intres=n;
}
if(strArr[0].length>0)
{
charres[0]=(strArr[1].toString())[0];
}
strres=strArr[2];


    //you'll get 13 in strArr[0]
    //you'll get Gin strArr[1]
    //you'll get true in strArr[2]

答案 3 :(得分:0)

您将需要方法String.Split('char')。此方法使用指定的char分割字符串。

    string str = "13,G,true";
    var arrayOfStrings=str.Split(',');

    int number = int.Parse(arrayOfStrings[0]); 

答案 4 :(得分:0)

// original input
string line = "13,G,true";

//  splitting the string based on a character. this gives us
// ["13", "G", "true"]
string[] split = line.Split(',');

// now we parse them based on their type
int a = int.Parse(split[0]);
char b = split[1][0];
string c = split[2];

如果您要解析的是CSV数据,我会查看与您的语言相关的CSV解析库。对于C#,Nuget.org有一些好的。