论坛求助要实现的一个功能。
实现代码如下:
using
System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Date1223_2
... {
class SpiltString
...{
//假设一行数据中,有很多组数据,每组数据用“||”分开
//如果只有两组数据,不用递归那么麻烦。
//对一行数据进行第一次分离
public ArrayList FirstSpilt(string str)
...{
int i = str.IndexOf("|");
int ct = str.Length;
string str1 = null;
ArrayList list = new ArrayList();
if (i > 0)
...{
str1 = str.Substring(0, i);
string str2 = str.Substring((i + 2), (ct - i - 2));
list = FirstSpilt(str2);
}
else
...{
str1 = str;
}
list.Add(str1);
return list;
}
//第二次分离。使用到了“out”
public void SecondSpilt(string str, out string name, out string gender, out int age)
...{
int indexA = str.IndexOf("a");
int indexB = str.IndexOf("b");
name = str.Substring(0, indexA);
gender = str.Substring(indexA+1, indexB - indexA-1);
age = Int32.Parse(str.Substring(indexB+1,str.Length-indexB-1));
}
}
class Test
...{
public static void Main(String[] args)
...{
string str = "张三a男b20||李四a男b25||钱五a女b18";
SpiltString ss = new SpiltString();
ArrayList list = ss.FirstSpilt(str);
string name;
string gender;
int age;
foreach (object obj in list)
...{
//数据彻底分离
ss.SecondSpilt(obj.ToString(), out name, out gender, out age);
//打印。这里可以将name,gender,age,插入数据库
Console.WriteLine(name + " " + gender + " " + age);
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Date1223_2
... {
class SpiltString
...{
//假设一行数据中,有很多组数据,每组数据用“||”分开
//如果只有两组数据,不用递归那么麻烦。
//对一行数据进行第一次分离
public ArrayList FirstSpilt(string str)
...{
int i = str.IndexOf("|");
int ct = str.Length;
string str1 = null;
ArrayList list = new ArrayList();
if (i > 0)
...{
str1 = str.Substring(0, i);
string str2 = str.Substring((i + 2), (ct - i - 2));
list = FirstSpilt(str2);
}
else
...{
str1 = str;
}
list.Add(str1);
return list;
}
//第二次分离。使用到了“out”
public void SecondSpilt(string str, out string name, out string gender, out int age)
...{
int indexA = str.IndexOf("a");
int indexB = str.IndexOf("b");
name = str.Substring(0, indexA);
gender = str.Substring(indexA+1, indexB - indexA-1);
age = Int32.Parse(str.Substring(indexB+1,str.Length-indexB-1));
}
}
class Test
...{
public static void Main(String[] args)
...{
string str = "张三a男b20||李四a男b25||钱五a女b18";
SpiltString ss = new SpiltString();
ArrayList list = ss.FirstSpilt(str);
string name;
string gender;
int age;
foreach (object obj in list)
...{
//数据彻底分离
ss.SecondSpilt(obj.ToString(), out name, out gender, out age);
//打印。这里可以将name,gender,age,插入数据库
Console.WriteLine(name + " " + gender + " " + age);
}
Console.ReadLine();
}
}
}
这个程序,还是很粗糙,基本上都是按照特定的需求来分割的,如果想实现输入任意分割符,就能分割,那就比较好了。