Методы для работы со строками
Для распечатки кавычек используется обратный слэш! (\”)
Статические методы класса String
Метод | Описание |
Empty | Возвращается пустая строка. Свойство со статусом read only |
Compare | Сравнение двух строк. Метод перегружен. Реализации метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности национального форматирования дат, чисел и т.д. |
CompareOrdinal | Сравнение двух строк. Метод перегружен. Реализации метода позволяют сравнивать как строки, так и подстроки. Сравниваются коды символов |
Concat | Конкатенация строк. Метод перегружен, допускает сцепление произвольного числа строк |
Copy() | Создает новый экземпляр String, имеющий то же значение, что и заданный экземпляр String. |
CopyTo(из чего, от, сколько) | Копирует заданное число знаков начиная с указанной позиции в этом экземпляре до указанной позиции в массиве знаков Юникода. |
Format | Выполняет форматирование в соответствии с заданными спецификациями формата. Ниже приведено более полное описание метода |
Intern, Islntern | Отыскивается и возвращается ссылка на строку, если таковая уже хранится во внутреннем пуле данных. Если же строки нет, то первый из методов добавляет строку во внутренний пул, второй - возвращает null. Методы применяются обычно тогда, когда строка создается с использованием построителя строк - класса StringBuilder |
Join | Конкатенация массива строк в единую строку. При конкатенации между элементами массива вставляются разделители. Операция, заданная методом Join, является обратной к операции, заданной методом Split. Последний является динамическим методом и, используя разделители, осуществляет разделение строки на элементы |
|
Динамические методы класса String
Метод | Описание |
Insert(куда, что) | Вставляет подстроку в заданную позицию |
Remove(от, сколько) | Удаляет подстроку в заданной позиции |
Replace(что, на что) | Заменяет подстроку в заданной позиции на новую подстроку |
Substring (от, сколько) | Выделяет подстроку в заданной позиции |
IndexOf(что, от), IndexOfAny, LastIndexOf, LastIndexOfAny | Определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора |
ToUpper(), ToLower() | Изменение регистра |
StartsWith, EndsWith | Возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой |
PadLeft(сколько, что добавлять), PadRight | Выполняет набивку нужным числом пробелов в начале и в конце строки |
Trim(что удалять!),TrimStart, TrimEnd | Обратные операции к методам Pad. Удаляются пробелы в начале и в конце строки, или только с одного ее конца |
Split(разделитель или массив разделителей) | Разбиение строк |
ToCharArray | Преобразование строки в массив символов |
ПРЕОБРАЗОВАНИЕ СТРОК В ДРУГИЕ ТИПЫ
N = Convert.ToInt32(s1);
M = Convert.ToDouble(s2);
F = Convert.ToBoolean(s3);
B = Convert.ToByte(s4);
C = Convert.ToChar(k);
s5= Convert.ToString(x);
Метод .Parse используется для конвертации любого значения в значение определенного типа.
N = int.Parse(s1);
N = int.Parse(Console.ReadLine());
M = Double.Parse(s2);
F = bool.Parse(s3);
Это будет работать нормально, если Вы уверены что в переменной s будет корректно записанное число. В случае же, если в переменной s будет строка вроде "abc",.NET выбросит исключение.
.TryParse() это хорошее решение, если строка, которая конвертируется не всегда число.
|
if (!Int32.TryParse(s, out n))
{
//обработка, если не число
}
Метод.TryParse() возвращает булевское значение обозначающее произошло ли преобразование и возвращает преобразованное значение в out параметре.
ПРИМЕР СРАВНЕНИЯ
Для сравнения можно использовать только == или!=.
Для использования >, <, == используется CompareTo
string string1 = "ИИТ";
string string2 = "Иит";
int result = string1.CompareTo(string2);
if (result > 0) Console.WriteLine("{0} больше чем {1}", string1, string2);
else
if (result == 0) Console.WriteLine("{0} равно {1}", string1, string2);
else
if (result < 0) Console.WriteLine("{0} меньше чем {1}", string1, string2);
// Напечатается ИИТ больше чем Иит
РАЗБИЕНИЕ СТРОК
str1 = "Шла Саша по шоссе и сосала сушку";
string[] words=str1.Split(' ');
for(int i=0;i<words.Length;i++)
{
MessageBox.Show(words[i]);
}
несколько разделителей
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
str1 = "one\ttwo three:four,five six seven";
string[] words=str1.Split(delimiterChars);
for(int i=0;i<words.Length;i++)
{
MessageBox.Show(words[i]);
}
ЗАДАНИЕ: Ввести текстовую строку. Напечатать слова, в которых первая буква встречается еще хотя бы раз.
Решение проблемы с доступом к элементам управления
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1: Form
{
public System.Windows.Forms.TextBox textbox = new System.Windows.Forms.TextBox();
public System.Windows.Forms.Button button = new System.Windows.Forms.Button();
public Form1()
{
InitializeComponent();
}
public void IN_Text(string s)
{
textBox1.Text = s;
}
public void IN_button(string s)
{
button2.Text = s;
}
private void button1_Click(object sender, EventArgs e)
{
IN_Text("Hello");
}
private void button2_Click(object sender, EventArgs e)
{
IN_button("dsfsdfs");
}
}
}