c#

时间:2016-06-29 05:49:01

标签: c# substring

我在c#中有一组代码我希望将用户在文本框中输入的内容存储到数据库中。

用户像这样进入文本框

input namexyzpan9837663placeofbirthmumbailocationwadala

这是用户输入的内容

  

(姓名:xyz pan:9837663出生地:孟买地点:wadala)

输出到数据库

  

xyz 9837663 mumbai wadala

OR

  

name xyzapan72placeofbirthgoalocationpanji

     

(>名称:xyza pan:72个出生地:goa位置:panji)

输出到数据库

  

xyza 72 goa panji

姓名,年龄,地点和地点都是静态的,但内在的价值 它们是动态的

我知道substring是有用的,但我不知道如何使用它。

2 个答案:

答案 0 :(得分:3)

如果关键字是静态的,则使用Split

string strMain = "namexyzpan9837663placeofbirthmumbailocationwadala";

var results = strMain.Split(new string[] { "name", "pan", "placeofbirth", "location" }, StringSplitOptions.RemoveEmptyEntries);

string name = results[0];
string pan = results[1];
string location = results[2];

你说你不知道如何使用Substring,这里工作正常:

请注意,此方法的第二个参数是要采用的字符串的长度,而不是要停止的索引。

string strMain = "namexyzpan9837663placeofbirthmumbailocationwadala";

int indexOfName = strMain.IndexOf("name");
int indexOfPan = strMain.IndexOf("pan");
int indexOfBirth = strMain.IndexOf("placeofbirth");
int indexOflocation = strMain.IndexOf("location");

int effectiveIndexOfName = indexOfName + "name".Length;
int effectiveIndexOfPan = indexOfPan + "pan".Length;
int effectiveIndexOfBirth = indexOfBirth + "placeofbirth".Length;
int effectiveIndexOflocation = indexOflocation + "location".Length;

string name1 = strMain.Substring(effectiveIndexOfName, indexOfPan- effectiveIndexOfName);
string pan1 = strMain.Substring(effectiveIndexOfPan, indexOfBirth - effectiveIndexOfPan);
string birth1 = strMain.Substring(effectiveIndexOfBirth, indexOflocation - effectiveIndexOfBirth);
string location1 = strMain.Substring(effectiveIndexOflocation);

namenamepan9837663placeofbirthmumbailocationwadala使用第二种方法。但namepanpan9837663placeofbirthmumbailocationwadala是一个有趣的案例,肯定需要一种解决方法。

答案 1 :(得分:2)

Regex专为此类案例而设计。

var input = @"namexyzpan9837663placeofbirthmumbailocationwadala";

var match = Regex.Match(input, @"^\s*"
    + @"name\s*(?<name>\w+?)\s*"
    + @"pan\s*(?<pan>\w+?)\s*"
    + @"placeofbirth\s*(?<placeOfBirth>\w+?)\s*"
    + @"location\s*(?<location>\w+)\s*" + @"$");

var name = match.Groups["name"].Value;
var pan = match.Groups["pan"].Value;
var placeOfBirth = match.Groups["placeOfBirth"].Value;
var location = match.Groups["location"].Value;