我有一个字符串,我的要求是从我的字符串中我应该从第一个分号(;)得到前4个字符。
我的代码如下:
var str1 = Settings.Default.sConstr.ToString();
var str2 = Settings.Default.dConstr.ToString();
string name = //sub string of str1 + sub string of str2;
我们怎么能这样做??
答案 0 :(得分:8)
您可以使用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
}
答案 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)