Правильный регистр букв
У меня есть проблема здесь в моей функции кожуха. Я использовал замену, чтобы изменить все соединение на более низкое, но все равно у меня есть ошибка>
Private Function UpCsing(ByVal sValue As String) As String
Dim toConvert As String() = sValue.Split(" ")
Dim lst As New List(Of String)
For i As Integer = 0 To toConvert.Length - 1
Dim converted As String = ""
If toConvert(i).Contains("^") Then
converted = toConvert(i).ToUpper.Replace("^", "")
Else
converted = StrConv(toConvert(i), VbStrConv.ProperCase).Replace("^", "")
End If
lst.Add(converted)
Next
Dim ret As String = ""
For i As Integer = 0 To lst.Count - 1
If i = 0 Then
ret = lst(0)
Else
ret += " " + lst(i)
End If
Next
Return ret.Replace(" For ", " for ").Replace(" In ", " in ").Replace(" Of ", " of ").Replace(" And ", " and ").Replace(" And/Or ", " and/or ").Replace(" By ", " by ") _
.Replace(" By ", " by").Replace(" 2Nd ", " 2nd ").Replace(" 3Rd ", " 3rd ").Replace(" At ", " at ").Replace("And/Or ", "and/or ").Replace("1St", "1st").Replace("2Nd", "2nd").Replace("3Rd", "3rd") _
.Replace("At ", "at ").Replace(" At", " at").Replace(" Of", " of").Replace(" & ", " and ").Replace("Poc", "POC").Replace(" As ", " as ") _
.Replace("C/O", "c/o").Replace("$ ", "$").Replace(" And/Or ", " and/or ")
End Function
Пример ошибки: "For" должен быть "for", но слово "Forward" должно быть "Forward", по моим выводам изменить его на "forward"
Пример "Для основного события и для нас, чтобы переслать" вывод должен быть "Для основного события и для нас, чтобы переслать"
1 ответ
Я пытался с этим кодом:
MessageBox.Show(UpCsing("for kelvzy sake I am paying^ this forward... forward^ for-ward..."))
И я получаю правильный результат:
Ради Кельвзи, я оплачиваю это вперед... ВПЕРЕД ВПЕРЕД...
Хорошо
Редактировать:
Пример "Для основного события и для нас, чтобы переслать" вывод должен быть "Для основного события и для нас, чтобы переслать"
Ваш код выводит Forward с большой буквы F, что именно то, что вы ожидаете.
Изменить 2:
Причина в том, что все слова без префикса / дополнения с помощью ^ преобразуются в ProperCase с этой строкой кода:
converted = StrConv(toConvert(i), VbStrConv.ProperCase).Replace("^", "")
Подсказка: нет необходимости заменять ^ на "", потому что слова, преобразованные в ProperCase, не добавляются с помощью ^.