1 / 1 / 0
Регистрация: 20.09.2014
Сообщений: 70
1

Порядковый номер вхождения одной строки в другую

30.03.2016, 11:48. Показов 3076. Ответов 3
Метки нет (Все метки)

C#
1
String.IndexOf
ищет первое вхождение,
C#
1
String.LastIndexOf
- последнее, а как найти, например, второе вхождение с конца?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2016, 11:48
Ответы с готовыми решениями:

Установить факт вхождения одной строки в другую
Всё просто не не могу вспомнить. string q = "город Москва"; if (q содержит "город") тогда .........

Проверка вхождения одной строки в другую (подбор уникальных строк)
Здравствуйте! сморите такая тема У меня в текст бох вводится пароль! а на др кнопку есть...

Определить индекс начала вхождения одной последовательности в другую
Есть задача Определить индекс начала вхождения одной последовательности в другую Написал алгоритм...

Даны строки. Найти количество вхождений из одной строки в другую
Даны строки.Найти количество вхождений из одной строки в другую

3
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
30.03.2016, 12:12 2
Лучший ответ Сообщение было отмечено Puls как решение

Решение

Перебор, у IndexOf можно задавать с какого искать как пример как-то так не проверял писал прямо на коленке надо кучу проверок ещё добавлять разных:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
string s1 = "010101";//где ищем
string s2 = "1";//что ищем
int n = 2; // требуемое вхождение
int count = 0;
int i = 0; 
int x = -1;
while(n>count)  
{
    i = s1.IndexOf(s2,x+1);
    if(i != -1)
    {
       x = i;
      count++;
    }
else 
break;
}
0
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
30.03.2016, 12:31 3
Лучший ответ Сообщение было отмечено Puls как решение

Решение

C#
1
2
3
string s = "0123$567$9";
int index1 = s.LastIndexOf('$');                // 8       
int index2 = s.LastIndexOf('$', index1 - 1);    // 4
Добавлено через 12 минут
Если требуется найти второй индекс с конца, то используем перегруженную версию метода, где в качестве второго аргумента передаем индекс первого минус один. Таким образом мы указываем с какой позиции искать символ/строку, другими словами, перескакиваем через уже найденный первый. Соответственно если требуется найти второй с начала, то Last меняем на First, а минус один на плюс один.
Этот подход можно использовать для создания своего метода UltimateFirst(Last)IndexOf(string s, int skipCount), где в качестве второго аргумента передается количество вхождений указанного символа которые нужно пропустить, перед поиском нужного элемента. Это позволит находить индекс к примеру седьмого вхождения символа с конца строки.

Добавлено через 2 минуты
Далее дать этому методу нормальное название и использовать его как метод расширения для класса string.

Добавлено через 1 минуту
О, да у меня сегодня годовщина, я ровно год назад зарегистрировался на этом форуме.
1
1 / 1 / 0
Регистрация: 20.09.2014
Сообщений: 70
30.03.2016, 12:54  [ТС] 4
Ребята, спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2016, 12:54
Помогаю со студенческими работами здесь

Пререход с одной строки на другую
допустим имеется какие -нибудь строки обьекта RichTexyBox : фвфывфыв фвфыв ыфвфв фывфыв фывфыв...

Определить номер последнего вхождения одной строки в другую
программа определяет номер последнего вхождения одной строки в другую. Program fin; uses ...

Замена в текстовом файле заданной строки на порядковый номер её вхождения в текст
Всем привет! Нуждаюсь в Вашей помощи. Есть текстовый файл file1.txt с примерно таким содержимым: ...

Проверка вхождения одной строки в другую
программа для проверки вхождения одной строки в большую


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru