2013-05-25 2 views

ответ

1
string result=string.Empty; 
string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas"; 

    int indexOfStringToSearch = abcd.IndexOf("X"); 
    if(indexOfStringToSearch!=-1) 
     { 
     if(indexOfStringToSearch -10 >0) 
      result = abcd.Substring(indexOfStringToSearch-10,10); 
     else 
      result = abcd.Substring(0,indexOfStringToSearch-1); 
    } 
1

Вы можете использовать методы String.Substring и String.IndexOf;

string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas"; 
Console.WriteLine(abcd.Substring(abcd.IndexOf("X") - 10, 10)); 

Основном, вы получите индекс X и вычитать 10 с этой позицией, после этого вы получите подстроку, начиная эту позицию и получая 10 характер после него.

Конечно, вы должны сначала проверить, если номер X больше 10 или нет. Потому что, если он меньше 10, вы должны проверить;

if(abcd.IndexOf("X") < 10) 
    Console.WriteLine(abcd.Substring(0, abcd.IndexOf("X"))); 
else 
    Console.WriteLine(abcd.Substring(abcd.IndexOf("X") - 10, 10)); 

Выход будет;

asdasasdss 

Описание: DEMO.

4
string searchWithinThis = "asdsdasdasdasdasdasasdasasdssXsdasdsadas"; 
string searchForThis = "X"; 

int firstCharacter = searchWithinThis.IndexOf(searchForThis); 

if (firstCharacter < 0) { 
    Console.WriteLine("Character {0} not found", searchForThis); 
} else { 
    Console.WriteLine("First occurrence: {0}", firstCharacter); 
} 

Если вы хотите 10 символов до X, в том числе X:

int tenCharactersBefore = Math.Max(firstCharacter - 10, 0); 

string result = searchWithinThis.SubString(tenCharactersBefore, 10) 
Console.WriteLine("The ten characters before are {0}", result); 

Если вы хотите, строка из 10 символов до X, не включая X:

int tenCharactersBefore = Math.Max(firstCharacter - 11, 0); 

string result = searchWithinThis.SubString(tenCharactersBefore, 10) 
Console.WriteLine("The ten characters before are {0}", result); 

Если вы требуется только символ, который составляет 10 символов до X:

int tenCharactersBefore = Math.Max(firstCharacter - 10, 0); 

string result = searchWithinThis.SubString(tenCharactersBefore, 1) 
Console.WriteLine("The ten characters before are {0}", result); 
0

Если будет только один символ 'X':

попробовать это:

string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas"; 
string[] words = s.Split('X'); 
Console.WriteLine(words[0].substring(words[0].length-10,10)); 

или для нескольких

string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas"; 
string[] words = s.Split('X'); 
for(int i=0;i<words.length; i++) 
{ 
    Console.WriteLine(word[i].substring(word[i].length-10,10)); 
} 
Смежные вопросы