Оглавление

15.4. Класс String. Обработка строк

Класс string предоставляет доступ к множеству методов для обработки строк. Экземпляр класса создается по следующей схеме:
<Экземпляр класса> = new String (<Строка>);
Как вы уже знаете, создать строку можно с помощью двойных или одинарных кавычек:

   var Str1 = "Строка 1";
   var Str2 = 'Строка 2';

Строки, созданные этими способами, будут иметь тип данных string, а при создании экземпляра класса string тип данных будет object:

   var Str1 = "Строка 1";
   var Str2 = 'Строка 2';
   var Str3 = new String ("Строка 3");
   document.write(typeof Str1); // string
   document.write(typeof Str2); // string
   document.write(typeof Str3); // object !

Тем не менее к обычным строкам можно применять методы класса string:

   var Str = "Строка".toUpperCase(); // Перевод символов в верхний регистр
   document.write(Str); // "СТРОКА"
   document.write(typeof Str); // string

При использовании метода touppercase () строка, имеющая тип данных string, автоматически преобразуется в экземляр класса string. Затем производится изменение (в нашем случае перевод символов в верхний регистр) и возвращается строка, имеющая тип данных string. Таким образом, класс string является объектом - оберткой над элементарным типом данных string.
Свойство length возвращает длину строки в символах:

var Str = new String ("Hello, world");
document.write(Str.length); // 12

Методов у объектов класса string значительно больше:
□  tostring() и vaiueof() возвращают значение строки:

   var Str = new String ("Hello, world");
   var Str2 = Str.toString();
   document.write(Str2); // "Hello, world"
   document.write(typeof Str); // object
   document.write(typeof Str2); // string

□  charAt (<номер символа>) извлекает символ, номер которого указан в качестве параметра. Нумерация символов в строке начинается с нуля:

   var Str = "Hello, world";
   document.write(Str.charAt(0)); // "Н"

□  charCodeAt (<номер символа>) возвращает код символа, номер которого указан в качестве параметра. Нумерация символов в строке начинается с нуля:

   var Str = "Hello, world";
   window.alert(Str.charCodeAt(0)); // 72

□  fromCharCode (<код1>, ..., <кодN>) создает строку из указанных кодов:

   var S = String.fromCharCode(1055, 1088, 1080, 1074, 1077, 1090);
   window.alert(S); // "Привет"

□  toLowerCase() преобразует символы строки в символы нижнего регистра:

   var Str = "Hello, world";
   Str = Str.toLowerCase();
document.write(Str); // "hello, world"

□  toUpperCase() преобразует символы строки в символы верхнего регистра:

   var Str = "Hello, world";
   Str = Str.toUpperCase();
   document.write(Str); // "HELLO, WORLD"

□  substr(<Начало  фрагмента> [<Длина фрагмента>]) извлекает фрагмент строки заданной длины. Если второй параметр пропущен, возвращаются все символы до конца строки:

   var Str = "Hello, world";
   document.write(Str.substr(0, 5)); // "Hello"
   document.write(Str.substr(7)); // "world"

□  substring(<Начало фрагмента>, <Конец фрагмента>) также извлекает фрагмент строки, заданный в этом случае номерами начального и конечного символов. Последний символ во фрагмент не включается:

var Str = "Hello, world";
document.write(Str.substring(7, 12)); // "world"

□  indexOf(<Подстрока>, [<Начальная позиция поиска>]) возвращает номер позиции первого вхождения подстроки в текущей строке. Если второй параметр не задан, то поиск начинается с начала строки. Если подстрока не найдена, возвращается значение  -1:

var Str = "Hello, world";
document.write(Str.indexOf("ll")); // 2
document.write(Str.indexOf("ll", 5)); // -1

□  lastlndexOf(<Подстрока>, [<Начальная позиция поиска>]) определяет номер позиции последнего вхождения подстроки в текущей строке. Если второй параметр не задан, то поиск начинается с начала строки. Если подстрока не найдена, возвращается значение  -1:

var Str = "Hello, world";
document.write(Str.lastIndexOf("o")); // 8

□ split (Разделитель>, [<Лимит>]) возвращает массив, полученный в результате разделения строки на подстроки но символу - разделителю. Если второй параметр присутствует, то он задает максимальное количество элементов в результирующем массиве:

var Str = "Hello, world";
var Mass = Str.split(",");
document.write(Mass[0]); // "Hello" — первый элемент массива
document.write(Mass[1]); // " world" — второй элемент массива

search(<Регулярное выражение>)   определяет   номер   позиции   первого вхождения подстроки, совпадающей с регулярным выражением;
□ match(<Регулярное выражение>)  возвращает массив с результатами поиска, совпадающими с регулярным выражением;
replace(<Регулярное выражение>,  <Текст для замены>) возвращает
строку, которая является результатом поиска и замены в исходной строке с использованием регулярного выражения.

 

Примеры использования последних трех методов мы рассмотрим при изучении регулярных выражений и встроенного класса RegExp (см. разд. 15.10).

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити