2013-12-23 45 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

相關問題