Отваря главното меню

Промени

1372 bytes added ,  преди 6 години
добавени примери в Java; промяна на последователността; форматиране на текста
Низовите типове данни в миналото са използвали един байт за символ. Някои езици като китайски, японски и др. (познати още като CJK) се нуждаят от много повече от 256 символа. Едно от решенията на този проблем е запазването на еднобайтовото представяне на [[ASCII]] и използване на двубайтово за CJK езиците. Това довежда до проблеми със съпоставянето на низовете, загуби на дължина и др.
[[Unicode]] е опростил нещата значително в това отношение и повечето програмни езици го поддържат.
 
=== Низове в PHP ===
В [[PHP]] символът един байт, т.е., съществуват точно 256 възможни символа. Това също означава, че PHP няма естествена поддръжка за Unicode.
Знаците в даден низ могат да бъдат достъпвани и изменяни чрез указване на отместване от нулата за желания знак след низа посредством квадратни скоби, например $str[42], така че бихте могли да мислите за даден низ като за [[Масив_(програмиране)|масив]] от знаци.
 
Дeфиниране и инициализиране
<source lang="php">
$txt="Hello world!";
echo $txt;
</source>
'''Полезни функции и оператори'''
 
[[Конкатенация]]
<source lang="php">
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
</source>
 
strlen() function - връща дължината на стринга
<source lang="php">
echo strlen("Hello world!");
</source>
 
strpos() - за търсене на символ/и в низ
<source lang="php">
echo strpos("Hello world!","world");
</source>
 
=== Низове в JavaScript ===
 
Низът в [[JavaScript]] са последователност от знаци/символи, които започват и завършват с единични или двойни кавички. Освен да се работи с низовете като букви/знаци, JavaScript предлага възможността да се работи с тях и като [[Обект_(програмиране)|обекти]] с много свойства и функции. Това е полезно, когато трябва да се приложат определени процеси върху низът.
 
'''Как се създават низове:'''
 
1. Обект от вида String
 
<source lang="javascript">var myString = new String("Life gets better");</source>
 
2. Низов [[литерал]]
 
<source lang="javascript">var myString = "Life";</source>
 
'''Функции на низът:'''
Низовете имат няколко функции, които са удобни в случай, че искате бързо и лесно да го манипулирате по някакъв начин.
 
{| class="wikitable"
|-
! Методи !! Описание
|-
| '''anchor()''' || Създава HTML [[таг]] за котва с цел на страницата
|-
| '''big()''' || Добавя таговете <nowiki><BIG></nowiki> и <nowiki></BIG></nowiki> около стойността на низа
|-
| '''bold()''' ||Добавя таговете <nowiki><b></nowiki> и <nowiki></b></nowiki> около низова стойност
|-
| '''charAt()''' ||Връща символа, който се намира на дадената позиция в низа
|-
| '''charCodeAt()''' || Намира смволния код на символ от дадена позиция в низа
|-
| '''concat()''' || Слепва/[[Конкатенация|конкатенира]]/ два или повече низа и връща новата комбинирана низова стойност
|-
| '''fixed()''' || Добавя таговете <nowiki><TT></nowiki> и <nowiki></TT></nowiki> около низова стойност
|-
| '''fontcolor()''' || Добавя таговете <nowiki><FONT color="color"></nowiki> и <nowiki></FONT></nowiki> около низова стойност. Те сменят цвета на низа с указания цвят
|-
| '''fontsize()''' || Добавя таговете <nowiki><FONT size="number"></nowiki> и <nowiki></FONT></nowiki> около низова стойност. Те променят размера на шрифта на низа с указано число
|-
| '''fromCharCode()''' || Използва символни кодове, предадени като параметри за създаване на нов низ
|-
| '''indexOf()''' || Търси символ, предаден като параметър, в низа. Ако бъде намерен, връща позицията на първото срещане на символа, иначе връща -1
|-
|'''italics()''' || Добавя таговете <nowiki><I></nowiki> и <nowiki></I></nowiki> около низова стойност
|-
| '''lastindexOf()''' || Търси символ, предаден като параметър в низа. Ако бъде намерен, връща позицията на последното срещане на символа, иначе връща -1
|-
| '''link()''' || Създава HTML връзки чрез използване на низа като текст на връзката и свързване с URL адреса, предаден като параметър
|-
| '''match()''' || Сравнява низ и регулярен израз, за да провери дали съвпадат
|-
| '''replace()''' || Открива дали един регулярен израз съвпада с низ и след това замества съвпадналия низ с нов низ
|-
| ''' search()''' || Изпълнява търсене на съвпадение между регулярен израз и указан низ
|-
| '''slice()''' || Изпълнява търсене на съвпадение между регулярен израз и указан низ
|-
| '''small()''' || Добавя таговете <nowiki><SMALL></nowiki> и <nowiki></SMALL></nowiki> около низовата стойност
|-
| '''split()''' || Разделя низа на масив от низове на базата на някакъв символ, предаден като параметър на метода
|-
| '''strike()''' || Добавя таговете <nowiki><STRIKE></nowiki> и <nowiki></STRIKE></nowiki> около низова стойност
|-
| '''sub()''' || Добавя таговете <nowiki><SUB></nowiki> и <nowiki></SUB></nowiki> около низова стойност
|-
| '''substr()''' || Позволява да се върне част от низа, указана като начална позиция и завършваща след определен брой символи
|-
| '''substring()''' || Позволява да се върне част от низа, указана като начална позиция и крайна позиция
|-
| '''sup()''' || Добавя таговете <nowiki><SUP></nowiki> и <nowiki></SUP></nowiki> около низова стойност
|-
| '''toString()''' || Връща низовата стойност на String обекта
|-
| '''toLowerCase()''' || Конвертира целият низ в малки букви и връща резултата
|-
| '''toUpperCase()''' || Конвертира целият низ в големи букви и връща резултата
|}
 
=== Низове в C ===
Низът в езика [[C_(език_за_програмиране)|С]] представлява последователност от символи, които завършват с терминираща нула ('\0'). Използва се [[ASCII]] таблица за символи.
Няма запазена дума "string", затова трябва да използваме ето тези конструкции:
<source lang="c">
char str[13] = {'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd','!', '\0'};
</source>
В този пример се вижда какво представлява стринга отвътре. Забележете, че трябва да се остави място за [[Терминираща_нула|терминиращата нула]], защото благодарение на нея се разбира кога сме достигнали края на низа.
Тази конструкция може да се запише и съкратено по този начин:
<source lang="c">
char str[] = "Hello world!";
</source>
В този пример макар да не записваме терминиращата нула [[Компилатор|компилаторът]] си оставя място за нея и я слага.
 
Ето още един пример, но този път с [[Указател_(програмиране)|указател]](pointer)
<source lang="c">
char* str = "Hello world!";
</source>
Тук указателят запазва адреса на първият символ, а останалите символи са следващите, докато не се достине до '\0'.
 
В C има [[Библиотека_(програмиране)|библиотека]] предназначена за работа със стрингове. За да я добавим трябва да поставим това отгоре на файла:
<source lang="c">
#include <string.h>
</source>
В тази библиотека са направени голямо количество от инструкции за работа със стрингове.
<source lang="c">
#include <string.h>
 
int strlen(char* str); //Връща дължината на низа.
char* strcpy(char* dest, char *src); //Копира един низ в друг. "Src" се копира в "dest".
int strcmp(char* str1, char* str2); //Сравнява двата низа и връща 0 ако са еднакви,
//отрицателна стойност ако "str1" е по-голям, и положителна ако "str2" е по-голям.
char* strcat(char* dest, char* src); //Добавя (append) "src" в "dest".
char* strstr(char* str, char* substr); // Търси дали в "str" се съдържа низ "substr" и връща указател сочещ към мястото кадето започва.
// Връща NULL, ако резултат не е намерен.
</source>
Още за библиотеката "string.h" можете да намерите [[http://www.cplusplus.com/reference/cstring/]]
 
Друга полезна библиотека е "stdlib.h", благодарение на нея може да превръщаме стрингове в числа.
<source lang="c">
int atoi(const char *str); //Връща целочислено число.
double atof(const char *str); //Връща реално число.
</source>
Още за библиотеката "stdlib.h" можете да намерите [[http://www.cplusplus.com/reference/cstdlib/]]
 
Ето пример за [[Конкатенация|конкатерине]] на низове:
<source lang="c">
char* str1 = strdup("Hello"); //Друг начин за инициализиране.
char* str2 = malloc(strlen (str1) + 8); // Заделяме памет с malloc, колкото дължината на предишния низ + допълнително.
strcpy(str2 , str1 ); // Копиране на str1 в str2.
strcat(str2 , " world!"); // Конкатениране на получения низ с " world!".
free(str1); // Освобождаване на първия низ.
 
// Можем освен това да пренасочваме и [[Указател_(програмиране)|указателите]] ако искаме стойноста да е в str1. С "str1 = str2;",
// но тогава ще е добре и да освободим и памета от str2 с ключовата дума free.
</source>
=== Низове в C++ ===
В [[C%2B%2B|С++]] съществува клас, намиращ се в "namespace std", който поддържа работа с низове. Думата "string" е ключова дума. Запазването на стрингове в памета е по начина по който се запазват и в C(накрая има терминираща нула).
Работата със стрингове е много по-удобна, защото са предефинирани аритметичните знаци "+" и "=".
<source lang="cpp">
string str = "Hello world!"; // Ако сме импортнали std.
std::string str2 = "Hello again world!"; // Aко не сме импортнали std.
</source>
Можем лесно да [[Конкатенация|конкатениране]] низове:
<source lang="cpp">
string str1 = "Hello";
string str2 = " world!";
string str3 = str1 + str2; // Копираме два стринга и ги даваме на трети.
str1 += str2; // Добавяне към първия стринг.
</source>
Освен това, [[Клас_(програмиране)|класът]] стринг поддържа и много допълнителни помощни функции.
<source lang="cpp">
string str = "Hello world!";
str.size();
str.length(); // И двете функции показват дължината на низа (size == length).
str.empty(); // Връща 0 ако не е празен, а ако е празен връща 1.
str.begin(); // Връща указател към началото на низа.
str.end(); // Връща указател към края на низа.
</source>
Има вградена функция за размяната на низове.
<source lang="cpp">
string str1 = "first";
string str2 = "second";
str1.swap(str2); // Разменяне на низовете.
</source>
Още [[Метод_(програмиране)|методи]] в класът "string" можете да намерите [[http://www.cplusplus.com/reference/string/string/]].
 
== Символни низове в C# ==
В [[Си_Шарп|C#]] символните низове са дефинирани в класа <code>System.String</code>. За декларация по време на писане на код се използва служебната дума 'string'<code>String</code>. Тъй като string<code>String</code> е клас, той е референтен тип данни и в стека на програмата се съхранява само указателя, сочещ към поле от динамичната памет, където се съхранява реалната стойност на обекта..<ref name="Въведение в C#">[http://downloads.academy.telerik.com/svn/csharppart1/Materials/Intro-CSharp-Book-1.00.pdf Въведение в C#], 465-509.</ref>
===Създаване на <code>String</code>===
За да работим с променлива от тип <code>string</code> трябва първо да я създадем и инициализираме. Трябва да се има предвид, че създаването на референтен тип само заделя част от динамичната памет със стойност '''<code>null'''</code>. Ако се опитаме да извикаме инстанцирания обект, ще получим грешка за достъп до липсваща стойност '''<code>NullReferenceException'''</code>. Има три начина за инициализиране на [[Променлива_(програмиране)|променливи]]:<br />
'''Задаване на [[литерал]] за символен низ.''' По този начин задаваме предефинирано текстово съдържание на променливата. Използва се когато знаем стойността, която трябва да бъде съхранена.
<big><source lang="csharp">string greeting = "Hello, World!";</source></big>
string assigned = initial;
</source></big>
'''Приемане на стойност от операция, която връща <code>string</code>.''' Това може да бъде метод, който валидира данни; преобразуване на друг тип променлива; събиране на няколко низа.
<big><source lang="csharp">
string firstName = "Georgi";
</source></big>
===Операции със символни низове===
Трябва да се отбележи, че символните низове са неизменими и всяка промяна на един низ води до създаване на нов, в който се пази резултата и пренасочване към него. Това може силно да забави изпълнението на една програма при много редакции на един низ (например долепване на символи в [[Цикъл_(програмиране)|цикъл]]). В такива случаи използваме класа String Builder<code>StringBuilder</code>, който оптимизира работата с низове.<br><br>
'''Сравняване на низове'''
:'''Сравняване за еднаквост.''' Удобен за това е метода '''<code>Equals()'''</code>, който работи еквивалентно на ''''<code>==''''</code>. Метода връща булев резултат ''''<code>true''''</code> при еднакви низове и ''''<code>false''''</code> при различни. Трябва да се има в предвид, че по този начин се сравняват побуквено елементите на масива, като се прави разлика между главни и малки букви. Често ще ни интересува само текстовото съдържание без регистъра на буквите, затова може да използваме метода ''''<code>Equals()''''</code> с параметър '''' <code>StringComparison.CurrentCultureIgnoreCase''''</code>
<big><source lang="csharp">
string word1 = "C#";
// False
</source></big>
:'''Сравняване на низове по азбучен ред.''' За тази цел се ползва метода ''''<code>String.CompareTo()''''</code>, който връща отрицателна стойност, когато първият низ е лексикографски преди втория, нула при равни стойности и положителна стойност при втори преди първи низ. Отново трябва да се има в предвид, че сравнението взима под внимание регистъра на буквите като малките са преди големите. Ако искаме да сравним двата низа без да взимаме под внимание регистъра ползваме статичния метод ''''<code>string.Compare(string strA, string strB, bool ignoreCase) ''''</code>. Вместо булевата променлива ''''<code>ignoreCase''''</code> можем да подадем ''''<code>StringComparison.CurrentCultureIgnoreCase''''</code>, с което метода отново ще работи.
<big><source lang="csharp">
string str1 = "sCore";
</source></big>
'''Долепване на низове ([[конкатенация]])'''<br>
Долепването на символни низове става чрез операторите ''''<code>+''''</code>, ''''<code>+=''''</code> и метода ''''<code>Concat()''''</code>. Към всеки низ може да се добави всеки друг тип, който може да се представи под формата на низ.
<big><source lang="csharp">
string greeting = "Hello, ";
</source></big>
'''Промяна на регистъра на символен низ''' <br>
Понякога се налага да приведем един низ в единен регистър (при записване на потребителски имена в база данни, проверка на парола и т.н.). Това става с двата метода ''''<code>ToUpper()''''</code> и ''''<code>ToLower()''''</code>.
<big><source lang="csharp">
string text = "SoMe teXt";
</source></big>
'''Търсене на низ в друг низ''' <br>
За търсене в даден низ се ползват двата метода ''''<code>IndexOf()''''</code> и ''''<code>LastIndexOf()''''</code>, като първия търси от началото на низа към края му, а втория на обратно. И двата метода връщат цяло число когато намерят индекс и ''''<code>-1''''</code> ако няма намерена стойност, като регистъра на текста е от значение. Ако искаме да търсим от определена стойност, можем да подадем параметър с индекса, от който да започва търсенето.
<big><source lang="csharp">
string text = "Some text";
</source></big>
'''Извличане на част от низ''' <br>
За тази цел използваме метода ''''<code>Substring()''''</code> с подадени параметри за начален индекс и дължина. Ако не подадем дължина на подниз се взима от дадения индекс до края на първия низ.
<big><source lang="csharp">
string text = "Some text here";
</source></big>
'''Разцепване на низ по разделител''' <br>
За да се изведат в масив елементите от списък записан в стринг се ползва метода ''''<code>Split()''''</code>, на който подаваме разделител или масив от разделители. Тъй като при списъците има допиране на разделители, често се получават празни полета в новосъздадения масив, затова в параметрите на метода подаваме ''''<code>StringSplitOptions.RemoveEmptyEntries''''</code>, който да приема два съседни разделителя за един.
<big><source lang="csharp">
string listOfNames = "Gosho, Pesho, Tosho, Ivan";
</source></big>
'''Премахване на ненужни символи от стринг''' <br>
За да премахнем празни места (нови редове, интервали и табулации) в началото и в края на един символен низ използваме метода ''''<code>Trim()''''</code>. При подаване на масив със символи същият метод ги търси и изтрива само тях в символния низ. Ако искаме да премахнем ненужните символи и празни места само в началото или само в края използваме съответно ''''<code>TrimStart()''''</code> и ''''<code>TrimEnd()''''</code>
<big><source lang="csharp">
string data1 = " 111 $ % Text Example ### s ";
</source></big>
'''Оптимизация на паметта при символни низове''' <br>
Когато инициализираме променлива от тип string с низов [[литерал]], динамичната памет се обхожда и се прави проверка дали такава стойност вече съществува. Ако съществува, новата променлива просто се пренасочва към нея. Ако не, референцията се препраща да сочи към нов блок памет. Интернирането на низове в [[.NET_Framework|.NET]] е възможно, защото низовете по концепция са неизменими и няма опасност някой да промени областта, сочена от няколко стрингови променливи едновременно. Когато не инициализираме низовете с литерали, не се ползва интерниране. Все пак, ако искаме да използваме интерниране изрично, можем да го направим чрез метода ''''<code>Intern()''''</code>. За да демонстрираме това по-долу използваме статичния метод ''''<code>Object.ReferenceEquals()''''</code>, който проверява дали два обекта сочат към един и същ блок памет.
<big><source lang="csharp">
string declared = "Some text";
=== Използване на <code>String.format()</code> ===
Класът <code>String</code> включва статичния метод <code>String.format()</code> за създаване на форматирани символни низове. Този метод позволява създаването на форматирани стрингове, които могат да се използват повторно, като само се променят параметрите. Този метод е подобен на метода <code>System.out.printf()</code>, който също форматира шаблонен низ и извежда стойности на местата на параметрите.
<source lang="java">
 
String example = String.format("%.2f", 3.141593); // "3.14"
</source>
=== Извличане на част от низ ===
Извличането на част от низ в отделна променлива се прави чрез метода <code>substring()</code>, като зададем начална и крайна позиция в текста.
 
<code>String substring(int beginIndex, int endIndex)</code> - Резултата е нов стринг, като <code>beginIndex</code> показва от къде да започва новият стринг, а краят е <code>endIndex – 1</code>.
В случай че, не е упоменат <code>endIndex</code>, за край се счита последния символ от оригиналния символен низ.
<source lang="java">
String example = new String("Welcome to Wikipedia!");
System.out.println(example.substring(10)); // Wikipedia!");
System.out.println(example.substring(10, 15)); // Wiki
</source>
 
=== Разцепване на низ по разделител ===
Методът <code>split</code> в класа <code>String</code> връща масив от символни низове състоящи се от поднизове разцепени от един или група от разделители.
<source lang="java">
 
String example = "Hello_World";
String example [] = example.split("_");
for (int i = 0; i < example.length; i++)
{
System.out.println(example[i]);
}
// Hello
//World
</source>
Методите <code>toLowerCase()</code> и <code>toUpperCase()</code> връщат нов стринг като конвертират всички букви в малки или главни.
 
<source lang="java">
String example = new String("Welcome to Wikipedia");
System.out.println(example.toLowerCase()); // welcome to wikipedia
</source>
<source lang="java">
String example = new String("Welcome to Wikipedia");
System.out.println(example.toUpperCase()); //WELCOME TO WIKIPEDIA
</source>
<code>trim</code> методът връща нов стринг премахвайки интервалите в началото и края на оригиналния символен низ.
<source lang="java">
String example = new String(" Welcome to Wikipedia ");
System.out.println(example.trim()); // Welcome to Wikipedia
</source>
 
=== Класовете <code>StringBuilder/StringBuffer</code> ===
* <code>boolean equals(Object anObject)</code> - връща резултат <code>true</code> ако стойностите на двата низа са еднакви и <code>false</code> ако са различни
* <code>boolean equalsIgnoreCase(String anotherString)</code> - сравнява двата низа дали са еднакви, без да взима предвид дали буквите са малки или големи.
 
== Низове в C ==
Низът в езика [[C_(език_за_програмиране)|С]] представлява последователност от символи, които завършват с терминираща нула ('\0'). Използва се [[ASCII]] таблица за символи.
Няма запазена дума <code>string</code>, затова трябва да използваме ето тези конструкции:
<source lang="c">
char str[13] = {'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd','!', '\0'};
</source>
В този пример се вижда какво представлява стринга отвътре. Забележете, че трябва да се остави място за [[Терминираща_нула|терминиращата нула]], защото благодарение на нея се разбира кога сме достигнали края на низа.
Тази конструкция може да се запише и съкратено по този начин:
<source lang="c">
char str[] = "Hello world!";
</source>
В този пример макар да не записваме терминиращата нула [[Компилатор|компилаторът]] си оставя място за нея и я слага.
 
Ето още един пример, но този път с [[Указател_(програмиране)|указател]](pointer)
<source lang="c">
char* str = "Hello world!";
</source>
Тук указателят запазва адреса на първият символ, а останалите символи са следващите, докато не се достине до '\0'.
 
В C има [[Библиотека_(програмиране)|библиотека]] предназначена за работа със стрингове. За да я добавим трябва да поставим това отгоре на файла:
<source lang="c">
#include <string.h>
</source>
В тази библиотека са направени голямо количество от инструкции за работа със стрингове.
<source lang="c">
#include <string.h>
 
int strlen(char* str); //Връща дължината на низа.
char* strcpy(char* dest, char *src); //Копира един низ в друг. "Src" се копира в "dest".
int strcmp(char* str1, char* str2); //Сравнява двата низа и връща 0 ако са еднакви,
//отрицателна стойност ако "str1" е по-голям, и положителна ако "str2" е по-голям.
char* strcat(char* dest, char* src); //Добавя (append) "src" в "dest".
char* strstr(char* str, char* substr); // Търси дали в "str" се съдържа низ "substr" и връща указател сочещ към мястото кадето започва.
// Връща NULL, ако резултат не е намерен.
</source>
Още за библиотеката <code>string.h</code> можете да намерите [[http://www.cplusplus.com/reference/cstring/]]
 
Друга полезна библиотека е <code>stdlib.h</code>, благодарение на нея може да превръщаме стрингове в числа.
<source lang="c">
int atoi(const char *str); //Връща целочислено число.
double atof(const char *str); //Връща реално число.
</source>
Още за библиотеката <code>stdlib.h</code> можете да намерите [[http://www.cplusplus.com/reference/cstdlib/]]
 
Ето пример за [[Конкатенация|конкатерине]] на низове:
<source lang="c">
char* str1 = strdup("Hello"); //Друг начин за инициализиране.
char* str2 = malloc(strlen (str1) + 8); // Заделяме памет с malloc, колкото дължината на предишния низ + допълнително.
strcpy(str2 , str1 ); // Копиране на str1 в str2.
strcat(str2 , " world!"); // Конкатениране на получения низ с " world!".
free(str1); // Освобождаване на първия низ.
 
// Можем освен това да пренасочваме и [[Указател_(програмиране)|указателите]] ако искаме стойноста да е в str1. С "str1 = str2;",
// но тогава ще е добре и да освободим и памета от str2 с ключовата дума free.
</source>
== Низове в C++ ==
В [[C%2B%2B|С++]] съществува клас, намиращ се в <code>namespace std</code>, който поддържа работа с низове. Думата <code>string</code> е ключова дума. Запазването на стрингове в памета е по начина по който се запазват и в C(накрая има терминираща нула).
Работата със стрингове е много по-удобна, защото са предефинирани аритметичните знаци <code>+</code> и <code>=</code>.
<source lang="cpp">
string str = "Hello world!"; // Ако сме импортнали std.
std::string str2 = "Hello again world!"; // Aко не сме импортнали std.
</source>
Можем лесно да [[Конкатенация|конкатенираме]] низове:
<source lang="cpp">
string str1 = "Hello";
string str2 = " world!";
string str3 = str1 + str2; // Копираме два стринга и ги даваме на трети.
str1 += str2; // Добавяне към първия стринг.
</source>
Освен това, [[Клас_(програмиране)|класът]] стринг поддържа и много допълнителни помощни функции.
<source lang="cpp">
string str = "Hello world!";
str.size();
str.length(); // И двете функции показват дължината на низа (size == length).
str.empty(); // Връща 0 ако не е празен, а ако е празен връща 1.
str.begin(); // Връща указател към началото на низа.
str.end(); // Връща указател към края на низа.
</source>
Има вградена функция за размяната на низове.
<source lang="cpp">
string str1 = "first";
string str2 = "second";
str1.swap(str2); // Разменяне на низовете.
</source>
Още [[Метод_(програмиране)|методи]] в класът <code>"string</code> можете да намерите [[http://www.cplusplus.com/reference/string/string/]].
 
== Низове в PHP ==
В [[PHP]] символът един байт, т.е., съществуват точно 256 възможни символа. Това също означава, че PHP няма естествена поддръжка за Unicode.
Знаците в даден низ могат да бъдат достъпвани и изменяни чрез указване на отместване от нулата за желания знак след низа посредством квадратни скоби, например $str[42], така че бихте могли да мислите за даден низ като за [[Масив_(програмиране)|масив]] от знаци.
 
Дeфиниране и инициализиране
<source lang="php">
$txt="Hello world!";
echo $txt;
</source>
'''Полезни функции и оператори'''
 
[[Конкатенация]]
<source lang="php">
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
</source>
 
<code>strlen()</code> - връща дължината на стринга
<source lang="php">
echo strlen("Hello world!");
</source>
 
<code>strpos()</code> - за търсене на символ/и в низ
<source lang="php">
echo strpos("Hello world!","world");
</source>
 
== Низове в JavaScript ==
 
Низът в [[JavaScript]] са последователност от знаци/символи, които започват и завършват с единични или двойни кавички. Освен да се работи с низовете като букви/знаци, JavaScript предлага възможността да се работи с тях и като [[Обект_(програмиране)|обекти]] с много свойства и функции. Това е полезно, когато трябва да се приложат определени процеси върху низът.
 
'''Как се създават низове:'''
 
1. Обект от вида <code>String</code>
 
<source lang="javascript">var myString = new String("Life gets better");</source>
 
2. Низов [[литерал]]
 
<source lang="javascript">var myString = "Life";</source>
 
'''Функции на низ:'''
Низовете имат няколко функции, които са удобни в случай, че искате бързо и лесно да ги манипулирате по някакъв начин.
 
'''Методи'''
 
* <code>anchor()</code> - Създава HTML [[таг]] за котва с цел на страницата
* <code>big()</code> - Добавя таговете <nowiki><BIG></nowiki> и <nowiki></BIG></nowiki> около стойността на низа
* <code>bold()</code> - Добавя таговете <nowiki><b></nowiki> и <nowiki></b></nowiki> около низова стойност
* <code>charAt()</code>- Връща символа, който се намира на дадената позиция в низа
* <code>charCodeAt()</code> - Намира смволния код на символ от дадена позиция в низа
* <code>concat()</code> - Слепва/[[Конкатенация|конкатенира]]/ два или повече низа и връща новата комбинирана низова стойност
* <code>fixed()</code> - Добавя таговете <nowiki><TT></nowiki> и <nowiki></TT></nowiki> около низова стойност
* <code>fontcolor()</code> - Добавя таговете <nowiki><FONT color="color"></nowiki> и <nowiki></FONT></nowiki> около низова стойност. Те сменят цвета на низа с указания цвят
* <code>fontsize()</code> - Добавя таговете <nowiki><FONT size="number"></nowiki> и <nowiki></FONT></nowiki> около низова стойност. Те променят размера на шрифта на низа с указано число
* <code>fromCharCode()</code> - Използва символни кодове, предадени като параметри за създаване на нов низ
* <code>indexOf()</code> - Търси символ, предаден като параметър, в низа. Ако бъде намерен, връща позицията на първото срещане на символа, иначе връща -1
* <code>italics()</code> - Добавя таговете <nowiki><I></nowiki> и <nowiki></I></nowiki> около низова стойност
* <code>lastindexOf()</code> - Търси символ, предаден като параметър в низа. Ако бъде намерен, връща позицията на последното срещане на символа, иначе връща -1
* <code>link()</code> - Създава HTML връзки чрез използване на низа като текст на връзката и свързване с URL адреса, предаден като параметър
* <code>match()</code> - Сравнява низ и регулярен израз, за да провери дали съвпадат
* <code>replace()</code> - Открива дали един регулярен израз съвпада с низ и след това замества съвпадналия низ с нов низ
* <code>search()</code> - Изпълнява търсене на съвпадение между регулярен израз и указан низ
* <code>slice()</code> - Изпълнява търсене на съвпадение между регулярен израз и указан низ
* <code>small()</code> - Добавя таговете <nowiki><SMALL></nowiki> и <nowiki></SMALL></nowiki> около низовата стойност
* <code>split()</code> - Разделя низа на масив от низове на базата на някакъв символ, предаден като параметър на метода
* <code>strike()</code> - Добавя таговете <nowiki><STRIKE></nowiki> и <nowiki></STRIKE></nowiki> около низова стойност
* <code>sub()</code> - Добавя таговете <nowiki><SUB></nowiki> и <nowiki></SUB></nowiki> около низова стойност
* <code>substr()</code> - Позволява да се върне част от низа, указана като начална позиция и завършваща след определен брой символи
* <code>substring()</code> - Позволява да се върне част от низа, указана като начална позиция и крайна позиция
* <code>sup()</code> - Добавя таговете <nowiki><SUP></nowiki> и <nowiki></SUP></nowiki> около низова стойност
* <code>toString()</code> - Връща низовата стойност на String обекта
* <code>toLowerCase()</code> - Конвертира целият низ в малки букви и връща резултата
* <code>toUpperCase()</code> - Конвертира целият низ в големи букви и връща резултата
 
 
==Източници==
14

редакции