Member 11763983 Ответов: 2

Как найти повторяющуюся цепочку символов в visual basic NET


У меня есть этот фрагмент текста в RichTextBox:

Richtextbox1 отображение.Текст = "ABCDEFТЕСТ12ABCDEF"

Как я могу получить повторяющееся строковое значение "ABCDEF"?

edit: чтобы быть более конкретным, мне нужен "поиск дубликатов". Это изображение должно проиллюстрировать план: Изображение

Что я уже пробовал:

Я понятия не имею, как решить эту проблему.

Patrice T

Уточните свой вопрос, я не понимаю, что вы пытаетесь сделать.

Member 11763983

Теперь все ясно?

[no name]

Нет, это не так. Мы не знаем, какое у тебя домашнее задание. Вы проверяете наличие дубликатов символов? Вы проверяете наличие повторяющихся слов в предложении? Что тебе сказал Учитель? Что вы изучали в классе?

Member 11763983

Это не домашнее задание,и я не учусь. Я хочу сделать это, потому что мне интересно. Мне нужно решение, чтобы найти дубликаты символов.

[no name]

Если вы не учитесь, как вы собираетесь учиться? Изучите, как перебирать массив. Затем научитесь задавать вопросы. И возьмите книгу по программированию и поработайте над ней.

Member 11763983

Знаете ли вы, что такое "учиться на практике"? Но ладно, забудь об этом, я буду продолжать пытаться, пока не найду решение.

[no name]

Да, я очень хорошо знаком с этой концепцией. Проблема в том, что вы ничего не делаете.

2 Ответов

Рейтинг:
2

Member 11763983

Dim str() As String = {}
str = Split(RichTextBox1.Text, " ")
Dim str2 As String = ""
Dim str3() As String = {}
Dim duplicate_names As String = ""
Dim i As Integer = 1
For Each name As String In str
    str3 = Split(str2, " ")
    For Each name2 As String In str3
        If name = name2 Then
            If Not duplicate_names.Contains(name) Then
                duplicate_names += name & vbNewLine
                i += 1
            End If
        End If
    Next
    str2 += name & " "
Next
MsgBox(duplicate_names)


Ravi Bhavnani

Правильно ли работает ваша программа с этим текстом: BAND AND BAND? Я бы ожидал, что ваша программа определит "группу" как единственное дублирующее слово.

/ Рави

Patrice T

Ваш код выглядит неправильно. Насколько я понимаю, "и группа" и "группа и" не дают одного и того же результата.

Member 11763983

Да, это все еще не работает идеально с "группой и группой".. но я оставил все как есть.

Рейтинг:
13

Ravi Bhavnani

Ответ кроется в вашем вопросе!

  Как я могу получить повторяющееся строковое значение "ABCDEF"?

Я думаю, что на самом деле вы имели в виду: "как мне обнаружить повторное слово в куче текста?"

Первым шагом было бы разбить входной текст на набор слов.  Затем проверьте наличие повторяющихся записей в коллекции, возможно, подсчитав вхождения каждого слова.  Слова, которые встречаются более одного раза, являются вашими дубликатами.

Как видите, я разбил вашу сложную проблему на две несколько менее сложные.  Ваша задача теперь состоит в том, чтобы атаковать каждую из этих проблем и разбить их на еще более простые проблемы.  Это называется поэтапное уточнение и это лежит в основе программной инженерии - вы разбиваете довольно абстрактную и сложную задачу на набор простых и очень четко определенных (и, следовательно, программируемых) задач.

Некоторые вещи, которые могут помочь вам достичь вашей цели Строка.Метод Split() [^] и Словарь C# [^] класс, который вы можете использовать для подсчета встречаемости каждого обнаруженного вами слова.

/ Рави


Member 11763983

Спасибо, теперь я понял.

Но что делать, если в моем текстовом поле не было пробелов, как в моем первом вопросе:

RichTextBox1. Text = " ABCDEFTEST12ABCDEF"

Что здесь возможно? Должен ли я проверять каждый символ отдельно или есть лучший способ найти повторяющиеся случаи?

Ravi Bhavnani

> Но что, если в моем текстовом поле не было пробелов

Вы должны сначала установить требования вашей программы. Я предположил, что вы хотите идентифицировать повторяющиеся слова, где слово-это текст, разделенный одним или несколькими пробелами. Поиск повторяющихся сегментов в неразрывной строке является (гораздо) более сложной задачей.

Поэтому у меня возникает вопрос: какие данные должна потреблять ваша программа?

/ Рави