我有一个字符串,我的要求是从我的字符串中我应该从第一个分号(;)得到前4个字符。如何在第一个分号后得到字符串前4个字符
我有下面的代码:
var str1 = Settings.Default.sConstr.ToString();
var str2 = Settings.Default.dConstr.ToString();
string name = //sub string of str1 + sub string of str2;
我们怎样才能做到这一点...?
我有一个字符串,我的要求是从我的字符串中我应该从第一个分号(;)得到前4个字符。如何在第一个分号后得到字符串前4个字符
我有下面的代码:
var str1 = Settings.Default.sConstr.ToString();
var str2 = Settings.Default.dConstr.ToString();
string name = //sub string of str1 + sub string of str2;
我们怎样才能做到这一点...?
您可以使用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);
希望它的工作。
您可以使用String.IndexOf
和String.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
}
很难肯定地说,但它听起来像他希望的前4个字符_after_分号。 –
我认为“前4个字符”是指第一个分号后的前4个字符。 –
@GrantWinney和Konrad Gadzina,你可以是对的人。更新了我的答案。感谢您的警告。 –
str1.Substring(str1.IndexOf(';'), 4) + str2.Substring(str2.IndexOf(';'), 4);
,或者如果你的;
后要4
chars
然后用这一个:
str1.Substring(str1.IndexOf(';') + 1, 4) + str2.Substring(str2.IndexOf(';') + 1, 4);
尝试:
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());
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);
我为您的答案添加了异常处理,这对于此类操作非常重要。 – glautrou