Низ: Разлика между версии
Изтрито е съдържание Добавено е съдържание
LordBumbury (беседа | приноси) м интервал преди запетая |
м стринг > низ редактирано с AWB |
||
Ред 123:
</source></big>
'''Разцепване на низ по разделител''' <br>
За да се изведат в масив елементите от списък записан в
<big><source lang="csharp">
string listOfNames = "Gosho, Pesho, Tosho, Ivan";
Ред 129:
string[] Names = listOfNames.Split(separators,StringSplitOptions.RemoveEmptyEntries);
</source></big>
'''Премахване на ненужни символи от
За да премахнем празни места (нови редове, интервали и табулации) в началото и в края на един символен низ използваме метода <code>Trim()</code>. При подаване на масив със символи същият метод ги търси и изтрива само тях в символния низ. Ако искаме да премахнем ненужните символи и празни места само в началото или само в края използваме съответно <code>TrimStart()</code> и <code>TrimEnd()</code>
<big><source lang="csharp">
Ред 144:
</source></big>
'''Оптимизация на паметта при символни низове''' <br>
Когато инициализираме променлива от тип string с низов [[литерал]], динамичната памет се обхожда и се прави проверка дали такава стойност вече съществува. Ако съществува, новата променлива просто се пренасочва към нея. Ако не, референцията се препраща да сочи към нов блок памет. Интернирането на низове в [[.NET_Framework|.NET]] е възможно, защото низовете по концепция са неизменими и няма опасност някой да промени областта, сочена от няколко
<big><source lang="csharp">
string declared = "Some text";
Ред 157:
=== String Builder ===
Конкатенирането на низове е много бавна операция. Това е заради факта, че всеки път трябва да се заделя нов буфер и да се презипише цялата информация в
Затова се използва специално направен клас <code>StringBuilder</code>, този клас има предварително зададен буфер, който може да бъде динамично променян, благодарение на което работата със символни низове е много по-бърза. Когато сме завършили низа можем да извикаме метода <code>ToString()</code>, който да го преобразува в нормален
<source lang="csharp">
Ред 182:
=== Създаване на символни низове ===
Най-лесния начин за създаване на
<source lang="java">String greeting = "Hello, world!";</source>
Ред 221:
=== Използване на <code>String.format()</code> ===
Класът <code>String</code> включва статичния метод <code>String.format()</code> за създаване на форматирани символни низове. Този метод позволява създаването на форматирани
<source lang="java">
String example = String.format("%.2f", 3.141593); // "3.14"
Ред 227:
=== Извличане на част от низ ===
Извличането на част от низ в отделна променлива се прави чрез метода <code>substring()</code>, като зададем начална и крайна позиция в текста.
<code>String substring(int beginIndex, int endIndex)</code> - Резултата е нов
В случай че, не е упоменат <code>endIndex</code>, за край се счита последния символ от оригиналния символен низ.
<source lang="java">
Ред 247:
//World
</source>
Методите <code>toLowerCase()</code> и <code>toUpperCase()</code> връщат нов
<source lang="java">
Ред 257:
System.out.println(example.toUpperCase()); //WELCOME TO WIKIPEDIA
</source>
<code>trim</code> методът връща нов
<source lang="java">
String example = new String(" Welcome to Wikipedia ");
Ред 331:
=== Сравняване на символни низове ===
* <code>boolean endsWith(String suffix)/ boolean startsWith(String prefix)</code> - връща стойност true ако
<source lang="java">
String example = new String("Welcome to Wikipedia!");
Ред 354:
// true
</source>
* <code>int compareTo(String anotherString)</code> - сравнява два
<source lang="java">
String example = "Hello, World";
Ред 364:
//0
</source>
* <code>int compareToIgnoreCase(String str)</code> – този метод сравнява два
<source lang="java">
String example = "Hello, World";
Ред 404:
char str[13] = {'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd','!', '\0'};
</source>
В този пример се вижда какво представлява
Тази конструкция може да се запише и съкратено по този начин:
<source lang="c">
Ред 417:
Тук указателят запазва адреса на първият символ, а останалите символи са следващите, докато не се достине до '\0'.
В C има [[Библиотека_(програмиране)|библиотека]] предназначена за работа със
<source lang="c">
#include <string.h>
</source>
В тази библиотека са направени голямо количество от инструкции за работа
<source lang="c">
#include <string.h>
Ред 435:
Още за библиотеката <code>string.h</code> можете да намерите [[http://www.cplusplus.com/reference/cstring/]]
Друга полезна библиотека е <code>stdlib.h</code>, благодарение на нея може да превръщаме
<source lang="c">
int atoi(const char *str); //Връща целочислено число.
Ред 454:
</source>
== Низове в C++ ==
В [[C%2B%2B|С++]] съществува клас, намиращ се в <code>namespace std</code>, който поддържа работа с низове. Думата <code>string</code> е ключова дума. Запазването на
Работата със
<source lang="cpp">
string str = "Hello world!"; // Ако сме импортнали std.
Ред 464:
string str1 = "Hello";
string str2 = " world!";
string str3 = str1 + str2; // Копираме два
str1 += str2; // Добавяне към първия
</source>
Освен това, [[Клас_(програмиране)|класът]]
<source lang="cpp">
string str = "Hello world!";
Ред 502:
</source>
<code>strlen()</code> - връща дължината на
<source lang="php">
echo strlen("Hello world!");
|