2014-02-05 4 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); 
    } 

Я хотел, чтобы преобразовать строку в массив, но я не могу это сделать, и я не могу получить позицию «ч 'string и что между ним.

Вывод должен быть:

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

Спасибо, и если я хочу, чтобы установить вместо «ч» строку типа 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

Спасибо Carey, но еще раз, как я могу найти строку из этой строки вместо char 'c'. ? – Sedax

+0

Как я заметил в своем ответе: ** ПРОЧИТАЙТЕ ДОКУМЕНТАЦИЮ **. Вы даже не пытаетесь помочь себе. 'IndexOf()' имеет несколько * перегрузок *, которые принимают либо 'char', либо' string'. Также читайте на 'string.IndexOfAny()', который находит первое вхождение в строке списка символов.) –

Смежные вопросы