我想分割一个字符串并将每个数据存储到C#中的变量中。 我该如何实现?
我的代码是:
string name="John,Hutkins,Doe,San Francisco CA";
输出应为:
string fname = "John";
string mname = "Hutkins";
string lname = "Doe";
string address= "San Francisco CA";
答案 0 :(得分:0)
它很简单:
var results = name.Split(',');
if(results.Length != 4)
throw new InvalidOperationException("Oh Noes!!!");
string fname = results[0];
string mname = results[1];
string lname = results[2];
string address= results[3];
警告,当地址中出现逗号时,此操作将失败。
如果这是CSV文件,请考虑使用专用的CSV分析器,
进一步阅读
返回一个字符串数组,该数组包含此实例中的子字符串 由指定的字符串或Unicode元素分隔的 字符数组。
答案 1 :(得分:0)
看起来最好有一个班级
public class PersonalInfo
{
public FName { get; private set; }
public LName { get; private set; }
public MName { get; private set; }
public Address { get; private set; }
public PersonalInfo (string info)
{
string[] items = info.Split(',');
FName = items [0];
MName = items [1];
LName = items [2];
Address = items [3];
}
public override ToString()
{
// return $"{LName}, {FName} {MName}"; // vs 2017
return string.Format("{0}, {1} {2}", LName, FName, MName); // vs 2008
}
}
现在您可以在列表等中实际使用对象了。
var pi = new PersonalInfo("John,Hutkins,Doe,San Francisco CA");
textBox1.Text = pi.FName;
. . . . . . .
答案 2 :(得分:0)
如果此字符串来自.csv文件,请考虑使用可用的csv解析器。 您也可以使用任何方法使用此方法。
String [] results = name.Split(',');
在这里,您的姓名将存储在结果数组中。索引顺序将是字符串中以0开头的名称顺序。 像这样
String address = results[3];
但是这里有一个错误。由于您使用逗号分隔值,因此您无法在地址中使用逗号,这会很困难。尝试使用“ |”之类的东西od'*'。
致谢