如何在第一个分号后获得前4个字符的字符串

时间:2013-12-23 12:35:50

标签: c# string

我有一个字符串,我的要求是从我的字符串中我应该从第一个分号(;)得到前4个字符。

我的代码如下:

var str1 = Settings.Default.sConstr.ToString();
var str2 = Settings.Default.dConstr.ToString();
string name = //sub string of str1 + sub string of str2; 

我们怎么能这样做??

6 个答案:

答案 0 :(得分:8)

您可以使用String.IndexOfString.SubString等方法;

string s = "asdfghj;zxcvb";
var index = s.IndexOf(';');
Console.WriteLine(s.Substring(index -4, 4));

输出将是;

fghj

这里有 demonstration

如果您查看4个字符 AFTER 半列,您可以像使用它一样;

string s = "asdfghj;zxcvb";
var index = s.IndexOf(';');
Console.WriteLine(s.Substring(index + 1, 4));

输出将是;

zxcv

这里有 demonstration

同时检查你的字符串是否包含;个字符,并且在;之后它有4个字符是个好主意;

if(s.Contains(';') && (s.Length >= s.IndexOf(';') + 5))
{
 //Your code
}

答案 1 :(得分:3)

str1.Substring(str1.IndexOf(';'), 4) + str2.Substring(str2.IndexOf(';'), 4);

或者如果您想在4之后使用chars ;,请使用以下内容:

str1.Substring(str1.IndexOf(';') + 1, 4) + str2.Substring(str2.IndexOf(';') + 1, 4);

答案 2 :(得分:2)

尝试:

var stringToGetFrom = "some characters;Get this stuff.";
var chars = stringToGetFrom.SkipWhile(c => c != ';').Skip(1).Take(3);

// Will contain the string "Get":
var selectedString = new string(chars.ToArray());

答案 3 :(得分:1)

您可以使用Split()执行此操作。

var str1 = Settings.Default.sConstr.Split(';');
var str2 = Settings.Default.dConstr.Split(';');
string name = str1[1].Substring(0,4)+" "+str2[1].Substring(0,4);

希望它有效。

答案 4 :(得分:1)

string s = "asdfghj;zxcvb";
string result = s.Split(new char[]{';'})[1].Substring(0,4);

或:

string s = "asdfghj;zxcvb";
var chars = s.Split(new char[] { ';' })[1].ToCharArray().Take(4).ToArray();
string result = new string(chars);

答案 5 :(得分:1)

试试这个

 sConstr.Split(';')[1].Substring(0,4)

Demo