Как найти 10 символов перед символом в строке? Например;Поиск 10 символов перед символом
string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas";
Как я могу найти 10 символов до X?
Как найти 10 символов перед символом в строке? Например;Поиск 10 символов перед символом
string abcd = "asdsdasdasdasdasdasasdasasdssXsdasdsadas";
Как я могу найти 10 символов до X?
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);
}
Вы можете использовать методы 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
.
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);
Если будет только один символ '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));
}