ANKIT JOHRI Ответов: 2

Как подсчитывать символы в C# ?


Всем привет,
Пожалуйста, дайте мне знать, дело в том, что

у меня есть текстовое поле, которое содержит 20 символов, я снова разделил его как 14+6, используя метод подстроки, который хранится в двух разных полях таблицы базы данных.
Проблема в том, что теперь, когда я передаю меньше 14 или меньше 6 символов в текстовых полях, это дает исключение длины, потому что в подстроке она требует длины 14 и 6 соответственно.

мне нужно знать, как я могу передать значение меньше 14 и меньше 6 в текстовом поле.

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

строку полное имя = Name_txt.Текст;
строка val2 = полное имя.Подстрока(0, 14); //валидность
строка val3 = полное имя.Подстрока(14,6);

теперь для подстроки (val2) 1 14 фиксируется, если я иду для ввода 13 символов, то это вызовет исключение, и то же самое, если я иду для ввода менее 6 символов, то это также даст исключение подсчета длины

2 Ответов

Рейтинг:
2

RickZeeland

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


ANKIT JOHRI

сэр, это обязательно взять один и разделить, а общее имя может быть длиной 20 символов, но в подстроке оно должно включать в первую строку от 0 до 14, а затем во вторую подстроку от 15 до 20.

Alex Schunk

Звучит подозрительно... Также очень плохой дизайн... Джон Стоун, например, должен написать свое имя таким образом? "Джон_______ _ Стоун"
Но ладно... Если тебе это нужно... Здесь:

ВАР имя = (Name_txt.Текст ?? "").Падрайт(20, ' ');
var val2 = полное имя.Подстрока(0, 14); //валидность
var val3 = полное имя.Подстрока(14,6);

Рейтинг:
2

Karthik_Mahalingam

просто проверьте длину текста

string fullname = Name_txt.Text;
      string val2, val3;
      if (fullname.Length >= 20)
      {
          val2 = fullname.Substring(0, 14);
          val3 = fullname.Substring(14, 6);
      }
      else {
          // show validation message to the user to enter 20+ characters
      }


ANKIT JOHRI

Ни одно имя не может быть длиной от 2 до 20 символов... таким образом, подстрока должна принимать первую подстроку shoudl принимать от 2 до 14 символов ( 14 или меньше 14), а затем подстрока 2 должна принимать от 15 до 20(5 или меньше 5)

Karthik_Mahalingam

пробовать

   string fullname =   "Name_txt.Text";
        string val2, val3;
         
        if (fullname.Length <= 14)
            val2 = fullname.Substring(0, fullname.Length); 
        else
        {
            val2 = fullname.Substring(0, 14);
            if (fullname.Length <= 20)
                val3 = fullname.Substring(14, fullname.Length - 14);
            else
                val3 = fullname.Substring(14, 6);
        }

ANKIT JOHRI

теперь я сделал так: string fullname = Name_txt.Text;
строка val2 = "";
строка val3 = "";
if (полное имя.Длина >= 14)
{
val2 = полное имя.Подстрока(0, 14); //имя
val3 = полное имя.Подстрока(14);
}
еще
{
val2 = полное имя; //имя
//val3 = полное имя.Подстрока(14, 6);

}

Karthik_Mahalingam

он не будет работать, если текст больше 20, то вторая строка будет содержать оставшиеся символы.