2014-02-05 102 views
-2

一個字符的位置我的代碼是這樣的:C#得到字符串

string dex = "ABCD1234"; 
string ch = "C"; 
string ch1, ch2; 
    if (dex.Contains(ch)) 
    { 
     string n = Convert.ToChar(dex); 
     MessageBox.Show(ch + " is on " + n + " place and is between " + ch1 + " and " + ch2); 
    } 

我想將字符串轉換成數組,但我不能這樣做,我不能檢索「ch的位置'字符串以及它之間的內容。

輸出應該是:

MessageBox.Show("C is on 3rd place and is between B and D"); 

回答

1
string aS = "ABCDEFGHI"; 
char ch = 'C'; 
int idx = aS.IndexOf(ch); 
MessageBox.Show(string.Format("{0} is in position {1} and between {2} and {3}", ch.ToString(), idx + 1, aS[idx - 1], aS[idx + 1])); 

這不會處理,如果你的性格是在零位和其他一些條件,你必須弄清楚他們。

+0

謝謝你,如果我想設置的,而不是「CH」像TextBox1中的字符串.text,我怎麼能轉換成char? – Sedax

+0

那麼... textbox1.Text是一個完整的字符串屬性。你必須將它轉換爲一個字符數組('Textbox1.Text.ToCharArray()')並在'for'循環中迭代 – Brandon

+0

謝謝布蘭登。 – Sedax

1

你可能想read the documentation on System.String及其方法和屬性:你想

的方法是IndexOf()

string s = "ABCD1234" ; 
char c = 'C' ; 

int offset = s.IndexOf(c) ; 
bool found = index >= 0 ; 
if (!found) 
{ 
    Console.WriteLine("string '{0}' does not contain char '{1}'" , s , c) ; 
} 
else 
{ 
    string prefix = s.Substring(0,offset) ; 
    string suffix = s.Substring(offset+1) ; 

    Console.WriteLine("char '{0}' found at offset +{1} in string '{2}'." , c , offset , s) ; 
    Console.WriteLine("The substring before it is '{0}'."    , prefix) ; 
    Console.WriteLine("The substring following it is '{0}'."   , suffix) ; 

} 
+0

感謝凱里,但又一次,我如何從字符串中搜索字符串,而不是char'c'。 ? – Sedax

+0

正如我在回答中所指出的那樣:**閱讀文檔**您甚至不想自助。 'IndexOf()'有幾個*重載*,可以使用'char'或'string'。另請參閱'string.IndexOfAny()',它在字符列表的字符串中找到第一個匹配項。) –