C# 如何获取字符串第一个分号后的前4个字符

C# 如何获取字符串第一个分号后的前4个字符,c#,string,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; 我们如何做到这一点…?您可以使用以下方法: string s = "asdfghj;zxcvb"; var i

我有一个字符串,我的要求是从字符串中获取第一个分号的前4个字符

我有以下代码:

var str1 = Settings.Default.sConstr.ToString();
var str2 = Settings.Default.dConstr.ToString();
string name = //sub string of str1 + sub string of str2; 
我们如何做到这一点…?

您可以使用以下方法:

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

fghj
zxcv
这里有一个

如果您在半列后面看4个字符,您可以像这样使用它

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

fghj
zxcv
这里有一个

还要检查字符串包含的内容;字符,后有4个字符;是一个好主意似的

if(s.Contains(';') && (s.Length >= s.IndexOf(';') + 5))
{
 //Your code
}
或者,如果你想要4个字符后;然后用这个:

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

可以使用“拆分”来执行此操作

var str1 = Settings.Default.sConstr.Split(';');
var str2 = Settings.Default.dConstr.Split(';');
string name = str1[1].Substring(0,4)+" "+str2[1].Substring(0,4);
希望它能起作用

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

试试这个

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

我认为前4个字符是指第一个分号后的前4个字符。@Grantwiney和Konrad Gadzina,你们可能是对的。更新了我的答案。谢谢您的警告。像这样的程序不能信任输入,您必须确保输入包含分号,并且下一个字符>=4个字符…@glautrou您有道理。根据您的建议进行更新。谢谢。我为您的回答添加了异常处理,这对于此类操作很重要。
 sConstr.Split(';')[1].Substring(0,4)