Показать первую и последнюю половину любой строки, введенной в текстовое поле - PullRequest
1 голос
/ 11 января 2012

Я хочу отобразить первый и последний символы любой заданной строки, введенной в текстовое поле.Строки могут быть любой длины по желанию пользователя (при условии, что это одно слово). Я хотел бы иметь возможность сделать что-то вроде этого ... "william = will and iam" или "Celtic = Cel and tic"

Я понимаю, что мне придется разделить или разделить строку.Как бы я поступил так?Спасибо за любую помощь, спасибо.

РЕДАКТИРОВАТЬ: Еще раз спасибо за вашу помощь, ребята, вот как закончился код!

Dim strInput = txtString.Text

    Dim halflength = strInput.Length / 2
    Dim firsthalf = strInput.Substring(0, halflength)
    Dim secondhalf = strInput.Substring(halflength)

    Dim strResults = firsthalf
    Dim secondResult = secondhalf


    MessageBox.Show(firsthalf)
    MessageBox.Show(secondhalf)

    MessageBox.Show("First half of string contains... " & " " & strResults.Length.ToString & " characters", "Character Count")
    MessageBox.Show("Second half of string contains... " & " " & secondResult.Length.ToString & " characters", "Character Count")

РЕДАКТИРОВАТЬ :

Также предполагается упомянуть мой текущий неверный код.

Dim strInput As String
Dim strLength As String
Dim strResults As String
strInput = txtString.Text
strLength = strInput.Length / 2
strResults = txtString.Text
MessageBox.Show(strInput.Length.ToString, "Length of characters")
MessageBox.Show(strLength.ToString)
MessageBox.Show(strResults.Substring(0, 3))

Ответы [ 3 ]

4 голосов
/ 11 января 2012

String.Substring и String.Length должны дать вам все необходимое для начала работы с этим.

Просмотр вашего существующего кода облегчит это. Давайте пройдемся по тому, что имеем сейчас.

Давайте предположим, что у нас есть простая, простая строка, подобная этой, вместо текстового поля, чтобы упростить задачу:

Dim txtString = "Hello World"

Теперь, чтобы разделить длину строки пополам; нам нужно получить длину. Свойство «Длина» даст это, а затем разделит его на два.

Dim halfLength = txtString.Length \ 2

Это выполнит целочисленное деление ; поэтому все оставшиеся десятичные дроби усекаются.

Теперь мы знаем, где находится середина строки. Теперь мы можем использовать String.Substring, чтобы вырезать кусок строки по индексу. Substring принимает два параметра: индекс, с которого начинается строка, и количество символов, которые нужно взять. Существует вторая перегрузка, которая берет индекс для начала и потребляет до конца строки. Индексы начинаются с нуля. Так, например, если бы мы хотели начать с начала строки, мы бы использовали ноль. Если бы мы хотели пропустить первый символ, мы бы использовали один.

Для первой половины строки мы не хотим пропускать символы, поэтому будем использовать ноль. Количество символов, которое мы хотим, равно половине длины строки, поэтому мы передаем halfLength:

    Dim firstHalf = txtString.Substring(0, halfLength)

Во второй половине мы хотим начать с середины строки и использовать символы до конца, поэтому мы будем использовать другую перегрузку:

    Dim secondHalf = txtString.Substring(halfLength)

Теперь ваша строка разбита пополам.

Окончательный результат выглядит так:

Dim txtString = "Hello World"
Dim halfLength = txtString.Length \ 2
Dim firstHalf = txtString.Substring(0, halfLength)
Dim secondHalf = txtString.Substring(halfLength)
2 голосов
/ 11 января 2012

Если предположить, что "каждая сторона имеет половину длины, а левая сторона имеет приоритет", вы должны использовать Substring и некоторое простое деление:

Dim str As String = "william"
Dim part1 As String = str.Substring(0, CInt(Math.Ceiling(str.Length / 2.0#)))
Dim part2 As String = str.Substring(part1.Length)

part1 & " and " & part2 'will and iam

Вот демонстрация.

0 голосов
/ 10 февраля 2018

Мой код отображает первую половину и последнюю половину любого количества введенных символов.

  1. Объявить переменную

    Dim strResults As String
    
  2. Извлечение текста из текстового поля

    strResults = Textbox1.Text
    
  3. Показать первую половину текста

    MessageBox.Show(strResults.Substring(0, strResults.Length / 2), "First Half Characters")
    
  4. Показать последнюю половину текста

    MessageBox.Show(strResults.Substring(strResults.Length / 2), "Last Half Characters")
    

Полный код:

    Dim strResults As String
    strResults = Textbox1.Text
    MessageBox.Show(strResults.Substring(0, strResults.Length / 2), "First Half Characters")
    MessageBox.Show(strResults.Substring(strResults.Length / 2), "Last Half Characters")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...