Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Леднева_программирование_на_JAVA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Содержание отчета

Готовится один отчет на бригаду в печатном виде для заданий, указанных в лабораторной работе. Он должен содержать следующие разделы:

  • титульный лист;

  • задание;

  • словесное описание алгоритма;

  • текст программы на языке Java.

Контрольные вопросы

1. Для каких матриц существует понятие главной и побочной диагоналей?

2. Как задаются и как изменяются индексы элементов главной диагонали?

3. Как задаются и как изменяются индексы элементов побочной диагонали?

4. Сколько циклов необходимо использовать при обработке главной (побочной) диагонали?

5. Сколько диагоналей, параллельных главной и побочной, может быть в матрице?

6. Как изменяются номера диагоналей, параллельных главной (побочной) и задаются их индексы?

7. Для каких матриц можно выполнить операцию умножения?

8. Как определяются значения элементов строки произведения двух матриц?

9. Каков общий алгоритм умножения матриц?

Лабораторная работа № 9 обработка строк класса string

Цель работы – получение навыков работы со строками класса String, знакомство с основными методами класса.

Источники: [3, с. 178-183], [4, с. 77-86].

Краткая теория Создание объектов класса String

Строка в языке Java – это не массив символов типа char, как в других языках программирования, а объект соответствующего класса. Основной класс Java для работы со строками – это String. Он определен в стандартной библиотеке языка.

Особенностью строки класса String является то, что после создания ее она не может быть изменена при помощи какого-либо метода класса, так как любое изменение приводит к созданию новой строки.

Основные конструкторы класса String:

– String() – создает пустую строку;

– String(String str) – создает строку, эквивалентную переданной;

– String(char s[]) – создает строку из переданного массива символов.

Создание объекта класса String производят обычным присваиванием литерала или с использованием оператора new и вызовом соответствующего конструктора класса, например:

String s1 = "Привет!";

String s2 = new String("Привет!");

Возможно создание строки путем ввода с клавиатуры:

Scanner sc = new Scanner(System.in, "cp1251");

System.out.print("Введите строку=> ");

String s = sc.nextLine();

Параметр "cp1251" объекта Scanner – это кодовая страница, обеспечивающая работу с кириллицей.

Методы класса String

Для реализации каких-либо действий над объектами классов Java используются методы. Методы, представляют собой именованный программный блок, построенный по определенным правилам и выполняющий решение некоторой самостоятельной подзадачи. Они являются неким аналогом процедур и функций в других языках программирования.

Вызов метода осуществляется следующим образом: записывается имя объекта и через точку имя метода. Для метода всегда ставятся в конце круглые скобки:

имяПеременной.имя_метода();

Пример записи метода перевода строки str в верхний регистр:

str.toUpperCase();

Пример кода с использованием метода для удаления пробелов в начале и конце строки и метода определения длины строки:

String s = " Привет! ";

System.out.println("Длина строки = "+s.length()); // 13 символов

s=s.trim(); // удаление пробелов

System.out.println(s); // выводится : "Привет!"

System.out.println("Длина строки = "+s.length()); // 7 символов

Класс String содержит достаточно большое количество стандартных методов для работы со строками, позволяющих произвести всевозможные преобразования. В табл. 9.1 представлены основные методы класса String.

Т аблица 9.1

Название метода

Тип

возвра-щаемого значения

Выполняемые действия

Пример

concat(String s) или “+”

String

Слияние строк

str3 = str1.concat("-" + str2);

System.out.println("kol="+kol);

equals(Object ob)

и

equalsIgnoreCase(String s)

boolean

Сравнение строк с учетом

и

без учета регистра соответственно

if (str1.equals(str2) ){…}

if (s1.equalsIgnoreCase(s2)) {...}

compareTo(String s)

и

compareToIgnoreCase(String s)

int

Лексикографическое сравнение строк с учетом и без учета регистра. Метод возвращает значение нуль в случае, когда equals() возвращает значение true

if (str1.compareTo(str2)>0){…}

if (s1.compareToIgnoreCase(str2)=0){

…}

substring(int n, int m)

String

Извлечение из строки подстроки длиной m-n, начиная с позиции n. Нумерация символов в строке начинается с нуля

str=str.substring(2, 8);

substring(int n)

String

Извлечение из строки подстроки, начиная с позиции n

String s=str.substring(4);

length()

int

Определение длины строки

n=str.length();

indexOf(char ch)

indexOf(String str)

int

Определение позиции символа или подстроки в строке

n=s.indexOf(‘x’);

if(s.indexOf(" Иван ")>=0){…}

lastIndexOf(char ch)

int

Последнее вхождение символа или подстроки

n1=s1.lastIndexOf(‘x’);

n2=s2.lastIndexOf(“СамГТУ”);

Окончание табл. 9.1

Название метода

Тип

возвра-щаемого значения

Выполняемые действия

Пример

valueOf(значение)

static String

Преобразование переменной базового типа к строке

String str=valueOf(100);

toUpperCase()/toLowerCase()

String

Преобразование всех символов вызывающей строки в верхний/нижний регистр

str1=str1.toUpperCase();

str=str.toLowerCase();

replace(char с1, char с2)

или

replace(String s1, String s2)

String

Замена в строке всех вхождений первого символа вторым символом

str1 = str1.replace(‘X’, "Y");

str2 = str2.replace("чя", "ча");

trim()

String

Удаление всех пробелов в начале и конце строки

str=str.trim();

isEmpty()

boolean

Проверяет, не пустая ли строка

if (str.isEmpty()) return;

charAt(int position)

char

Возвращение символа из указанной позиции (нумерация с нуля)

split(String regex)

split(String regex, int limit)

String[]

Поиск вхождения в строку заданного регулярного выражения (разделителя) и деление исходной строки в соответствии с этим на массив строк

String[] slova = str.split("-");

System.out.println("Слова :");

for (int i = 0; i < arr.length; i++)

System.out.println("\t"+slova[i]);

Далее приведен демонстрационный пример приложения с использованием ряда методов.

package str_proba;

public class Str_proba {

public static void main(String[] args) {

char s[] = { 'J', 'a', 'v', 'a' }; // массив символов

String str = new String(s); // str="Java" создана из массива символов

if (!str.isEmpty()) { // если строка не пустая

int dlina = str.length(); // dlina =4

str = str.toUpperCase(); // str="JAVA" перевод в заглавные буквы

String num = String.valueOf(8); // num="7" – перевод числа в строку

String stroka = str.concat("-" + num); // stroka ="JAVA-8" – объединение

char ch = str.charAt(2); // ch='V' – выделение третьего символа

i = str.lastIndexOf('A'); // i=3 (-1 если нет)

stroka = stroka.replace("8", "SE"); // num="JAVA-SE" –замена

str.substring(0, 4).toLowerCase(); // java – перевод в строчные буквы

str = stroka + "-8"; // str=”java-SE-8”

String[] arr = str.split("-"); // выделение массива

System.out.println("Слова из предложения:");

for (int j = 0; j < arr.length; j++)

System.out.println("\t"+arr[j]);

} else {

System.out.println("Строка пустая!");

}