Поиск длины строки

TypeScript:
Поиск длины строки

Как это сделать:

В TypeScript длину строки можно узнать, используя свойство .length. Вот быстрый пример:

let greeting: string = "Привет, TypeScript!";
console.log(greeting.length); // Вывод: 18

Этот код объявляет строковую переменную с именем greeting и затем выводит её длину в консоль.

Глубокое погружение

Свойство .length унаследовано от JavaScript, предшественника TypeScript. Это простой и универсально поддерживаемый способ получения размера строки.

Существуют альтернативы, но они обычно усложняют задачу. Например, можно преобразовать строку в массив и подсчитать элементы:

let greetingArray: string[] = Array.from(greeting);
console.log(greetingArray.length); // Вывод: 18

Но зачем идти длинным путем? Свойство .length эффективно, потому что строки хранятся в виде массивов символов под капотом, так что информация о длине немедленно доступна.

Теперь, допустим, вы работаете со строками на разных языках. Вы можете столкнуться с проблемами со специальными символами. Базовый подход с .length подсчитывает единицы кода UTF-16, что может быть проблематично для символов, требующих две единицы кода, известных как суррогатные пары. В таких случаях свойство .length может не дать вам подсчета фактических символов, также известных как кодовые точки.

Вот как вы можете обрабатывать строки с суррогатными парами:

function countCodePoints(str: string): number {
    return Array.from(str).length;
}

let fancyGreeting: string = "Привет, 🌍!";
console.log(countCodePoints(fancyGreeting)); // Вывод: 9

Эта функция занимается тонкостями кодирования строк, чтобы обеспечить, чтобы каждый символ, независимо от того, состоит он из одной или двух единиц кода, был правильно подсчитан.

Смотрите также