2013-12-23 42 views
-6

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

我有下面的代码:

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

我们怎样才能做到这一点...?

回答

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); 

希望它的工作。

+1

我为您的答案添加了异常处理,这对于此类操作非常重要。 – glautrou

7

您可以使用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 
} 
+0

很难肯定地说,但它听起来像他希望的前4个字符_after_分号。 –

+0

我认为“前4个字符”是指第一个分号后的前4个字符。 –

+0

@GrantWinney和Konrad Gadzina,你可以是对的人。更新了我的答案。感谢您的警告。 –

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

,或者如果你的;后要4chars然后用这一个:

str1.Substring(str1.IndexOf(';') + 1, 4) + str2.Substring(str2.IndexOf(';') + 1, 4); 
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()); 
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); 
1

试试这个

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

Demo

相关问题