由于我是C#的新手,我不知道如何在其中找到一个字符串 以下是样本数据。
NIZAKAT ALI CHANNA s/o SHAMA NAZ.
MUHAMMAD USAMAN S/OABDUREHMAN s/o WEL MARK (PVT) LTD.
MAHA SECURITIES (PVT) LTD s/o REHAN AHMED.
AL-REHMAT TRADERS PVT LTD s/o Yasar Ayub S/O Mohammad Ayub Khan.
MUHAMMAD HASSAN s/o BATA SHOES SADDAR BAZAR C/O RANA KHALID PERVAIZ.
我希望在FIRST NAME ARRAY
中保存名字,在第二个数组中保存姓氏。我怎么能这样做?
我希望我的数据表示如下:
| First Name------------------ | Last Name |
1| NIZAKAT ALI CHANNA -- | SHAMA NAZ |
2| MUHAMMAD USAMAN --- | ABDUREHMAN |
3| MAHA SECURITIES ----- - | REHAN AHMED |
4| AL-REHMAT --------------- | Yasar Ayub |
5| MUHAMMAD HASSAN ---- | RANA KHALID PERVAIZ |
我能用C#解决所有这些表达的解决方案吗?
答案 0 :(得分:3)
您的样本数据是否包含换行符?
string data = "NIZAKAT ALI CHANNA s/o SHAMA NAZ.\n MUHAMMAD USAMAN S/OABDUREHMAN s/o WEL MARK (PVT) LTD.\n MAHA SECURITIES (PVT) LTD s/o REHAN AHMED.\n AL-REHMAT TRADERS PVT LTD s/o Yasar Ayub S/O Mohammad Ayub Khan.\n MUHAMMAD HASSAN s/o BATA SHOES SADDAR BAZAR C/O RANA KHALID PERVAIZ.";
如果没有新行字符,则按点字符分割,因为它标记每个条目的结尾。否则(或者你不知道),用新的行和点字符分开。
var split = data.Split(new []{'.', '\n'}, StringSplitOptions.RemoveEmptyEntries);
现在,为了存储数据,你真的想要使用一个类
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
获取数据 - 按“s / o”拆分每一行,然后从新创建的拆分中获取第一项和第二项。第三项是可选的,我想这是一家公司。
var persons = split.Select(entry => entry.Split(new[] { "s/o" }, StringSplitOptions.RemoveEmptyEntries))
.Select(lineSplit => new Person { FirstName = lineSplit[0], LastName = lineSplit[1] })
.ToList();
答案 1 :(得分:2)
您可以使用Split功能,将它们拆分为“s / o”,如下所示:
string data = "NIZAKAT ALI CHANNA s/o SHAMA NAZ. MUHAMMAD USAMAN S/OABDUREHMAN s/o WEL MARK (PVT) LTD. MAHA SECURITIES (PVT) LTD s/o REHAN AHMED. AL-REHMAT TRADERS PVT LTD s/o Yasar Ayub S/O Mohammad Ayub Khan. MUHAMMAD HASSAN s/o BATA SHOES SADDAR BAZAR C/O RANA KHALID PERVAIZ."
string[] splittedData = data.Split(new string[]{"s/o"}, stringSplitOptions.None);
“SplittedData”是您的数据数组,其中包含“FirstName”和“LastName。
他们使用这样的空间拆分他们:
for(int i = 0; i < splittedData.Length; i++)
{
string[] firstNameLastName = splittedData[i].Split(' ');
// the index 0 of firstNameLastName array is the first name, add this to the first name array, and the index 1 of firstNameLastName array is the last name, add this to the last name array
}
答案 2 :(得分:0)
我不知道这些数据在哪里,我猜它们是在几行的文件中 每一行都是一个人
StreamReader reader=new StreamReader("file.txt");
int index=1;
while(!reader.EndOfStream)
{
string line=reader.ReadLine();
string []nameparams=line.Split(new string[]{"s/o"}, StringSplitOptions.None);
Console.WriteLine("{0}|{1}------|{2}|",index,nameparams[0],nameparams[1]);
}
reader.Close();