将文本分割为4个数组
本文关键字:4个 数组 分割 文本 | 更新日期: 2023-09-27 18:06:24
我想分割文本,使用字符,这样我就可以从它创建一个对象。
string s = "Domain_FieldName";
//string s = "Domain_Schema_TableName_FieldName";
//string s = "Domain_Schema_FieldName";
var x = s.Split(new[] {'_'}, StringSplitOptions.None);
var xx = new Response()
{
Value = "test",
DataType = "string",
Domain =
Schema =
TableName =
FieldName =
};
所以,问题是要分割的字符串的长度可能不同。
但是我需要分割字符串,以便它可以映射到响应对象字段。
我需要一种通用的方式来填充响应对象。
所以作为一个例子,如果只指定了"Domain_FieldName",它需要知道在响应上传递Domain到Domain,在响应上传递FieldName到FieldName, Schema和TableName应该得到一个空字符串
你可以这样做:
var x = s.Split(new[] { '_' }, StringSplitOptions.None);
var xx = new Response
{
Value = "test",
DataType = "string",
Domain = x.Length > 0 ? x[0] : null,
Schema = x.Length > 1 ? x[1] : null,
TableName = x.Length > 2 ? x[2] : null,
FieldName = x.Length > 3 ? x[3] : null
};
使用c# Split
函数
string s = "Domain_Schema_TableName_FieldName";
string[] substring= s.Split('_');
上面的代码将使用分隔符_
将字符串Domain_Schema_TableName_FieldName
分成不同的部分,并将子字符串保存在名为substring
在设置变量之前,尝试检查split
数组的长度。(如果太短,请设置默认值)
var xx = new Response()
{
Value = "test";
DataType = "string";
Domain = (x.Length >= 1)?x[0]:"";
Schema = (x.Length >= 2)?x[1]:"";
TableName = (x.Length >= 3)?x[2]:"";
FieldName = (x.Length >= 4)?x[3]:"";
};
(同样:s.Split("_")
或s.Split('_')
也可以)
编辑:我没看到,你只想填满最后4个字段。改变代码
编辑2:我也没有看到字符串的顺序可能不同(例如,例1与例3)。在这种情况下,我不能帮助你,除非你可以指定,如何确定哪个字符串需要进入哪个字段。
try this
string s = "Domain_FieldName";
var x = s.Split(new[] { '_' }, StringSplitOptions.None);
var xx = new Response
{
Value = "test",
DataType = "string",
Domain =x[0],
Schema ="",
TableName ="",
FieldName = x[1]
};
从你的例子似乎域名总是第一,和FieldName总是最后:
string s = "Domain_FieldName";
//string s = "Domain_Schema_TableName_FieldName";
//string s = "Domain_Schema_FieldName";
var x = s.Split('_');
var xx = new Response()
{
Value = "test",
DataType = "string",
Domain = x[0]
Schema = x.Length > 2 ? x[1] : "";
TableName = x.Length > 3 ? x[2] : "";
FieldName = x.Length > 1 ? x.Last() : "";
};