Программа для подсчета количества запятых в строке и их замены.
public static void main(String[] args) {
String s = "Например, в Java существуют методы для сравнения двух строк, "
+ "поиска подстроки, изменения регистра символов и т.п.";
int count = 0;
for (int i=0; i<s.length(); i++) {
if (s.charAt(i) == ',') {
count++;
}
}
System. out. println("Количество запятых: " + count);
// заменим все запятые восклицательными знаками для смеха
// можно преобразовать строку в массив символов и работать с ним
char arr[] = s.toCharArray();
for (int i=0; i< arr.length; i++) {
if (arr[i] == ',') {
arr[i] = '!';
}
}
// и преобразуем массив в строку
String s2 = new String(arr);
System. out. println("Из массива: " + s2);
// а можно работать со строкой, каждый раз переприсваивая
// переменной новое значение. Минус подхода в том, что если
// в строке слишком много запятых, память будет захламляться лишними строками
while (s.indexOf(',')!= -1) {
s = s.replace(',', '!');
}
System. out. println("Работаем со строкой: " + s);
}
Вывод в консоль:
Количество запятых: 3
Из массива: Например! в Java существуют методы для сравнения двух строк! поиска подстроки! изменения регистра символов и т.п.
|
|
Работаем со строкой: Например! в Java существуют методы для сравнения двух строк! поиска подстроки! изменения регистра символов и т.п.
Постановка задачи
Общие требования:
- Исходная строка и другие исходные данные (если требуется по заданию) задаются в программе при объявлении переменных или пользователем путем ввода с клавиатуры.
- Вывести на экран исходную строку и результат
- Во второй части задания «словом» считаем часть строки, ограниченную пробелами.
Варианты заданий
ВАРИАНТ 1
а) Выяснить, имеются ли пары соседствующих одинаковых символов и оставить
только по одному из пары.
б) Из двух предложений удалить слова, встречающиеся в обоих предложениях.
Вывести на экран полученные предложения и удаленные слова.
--------------------------------------------------------------------------------------------------------------
ВАРИАНТ 2
а) Преобразовать строку символов, заменив в ней каждую из групп, стоящих рядом точек,
одной точкой.
б) Расположить слова данного предложения в порядке убывания длин.
---------------------------------------------------------------------------------------------------------------
ВАРИАНТ 3
а) Выяснить, имеется ли в строке определенная комбинация символов:
s[i], s[i+1], и, если есть, сколько раз встречается.
б) Записать слова предложения в обратном порядке, исключив запятые «,»
----------------------------------------------------------------------------------------------------------------
ВАРИАНТ 4
а) Получить номера всех вхождений в строку пар одинаковых символов.
б) Найти слова, имеющие наибольшее число вхождений в предложении.
----------------------------------------------------------------------------------------------------------------
|
|
ВАРИАНТ 5
а) Ввести строку, в которой по крайней мере один восклицательный знак (не первый!). Среди
символов, предшествующих "!", определить количество пробелов;
б) Даны два предложения, причем второе состоит из слов первого, записанных в другом порядке.
Найти этот порядок.
-------------------------------------------------------------------------------------------------------------------------
ВАРИАНТ 6
а) Удалить из заданной строки все вхождения другой заданной строки.
б) Из заданного текста выбрать и напечатать те слова, которые встречаются в нем ровно один раз.
---------------------------------------------------------------------------------------------------------------------
ВАРИАНТ 7
а) Преобразовать заданную строку, удалив каждый символ "*" и повторив каждый символ,
равный "!".
б) В заданном предложении имеются два слова, одно из которых является
обращением другого (т.е. "перевертышем" -> "нос" - "сон"). Найти эту пару слов.
----------------------------------------------------------------------------------------------------------------------
ВАРИАНТ 8
а) Задать строку, в которой есть два двоеточия. Получить все символы, расположенные
между первым и вторым двоеточиями.
б) Найти множество всех слов, которые встречаются в каждом из двух заданных предложений.
-------------------------------------------------------------------------------------------------------------------
ВАРИАНТ 9
а) В заданной строке символов выделить в отдельную строку все имеющиеся цифры;
б) Для каждого слова заданного текста указать, сколько раз оно встречается в тексте.
Сообщение об одном слове должно печататься не более одного раза.
-------------------------------------------------------------------------------------------------------------------
ВАРИАНТ 10
а) В заданной строке символов перевернуть (прочитать наоборот - справа налево)
определенную по двум индексам группу символов.
б) В предложении поменять местами слова с максимальной и минимальной длинами.
------------------------------------------------------------------------------------------------------------------
Приложение А. Методы строковых объектов
Некоторые методы строковых объектов приведены ниже:
int length() – возвращает длину строки (int)
char charAt(int <индекс>) – возвращает символ строки (char) по указанному индексу. <индекс> - от 0 до length()–1
char[] toCharArray() – возвращает строку в виде массива символов (char[])
boolean equals(Object <строка1>) – сравнивает данную строку со строкой1. Возвращает true если строки совпадают, или false (boolean) – в обратном случае.
boolean equalsIgnoreCase(String <строка1>) – сравнивает данную строку со строкой1 без учета регистра символов. Возвращает true если строки совпадают, или false (boolean) – в обратном случае.
int indexOf(String <строка1>) – возвращает позицию (индекс) первого вхождения строки1 в данную строку. Если не найдено – возвращает –1.
int indexOf(String <строка1>, int <начальный_индекс>) – возвращает позицию (индекс) первого вхождения строки1 в данную строку. Поиск вхождения осуществляется с указанного начального индекса. Если не найдено – возвращает –1.
int lastIndexOf(String <строка1>) – возвращает позицию (индекс) последнего вхождения строки1 в данную строку. Если не найдено – возвращает –1.
int lastIndexOf(String <строка1>, int <начальный_индекс>) – возвращает позицию (индекс) последнего вхождения строки1 в данную строку. Поиск вхождения осуществляется с указанного начального индекса. Если не найдено – возвращает –1.
boolean startsWith(String <строка1>) – определяет, начинается ли данная строка с подстроки строка1.
boolean endsWith(String <строка1>) – определяет, заканчивается ли данная строка подстрокой строка1.
String replace(char <старый_символ>, char <новый_символ>) – заменяет в данной строке все вхождения старого символа на новый символ и возвращает полученную строку (String).
String substring(int <начальный_индекс>, int <конечный_индекс>) – возвращает часть строки, начиная с указанного начального индекса до конечного индекса.
String trim() – возвращает данную строку без пробелов в начале и конце строки.
|
|
String toUpperCase() – переводит все символы строки в верхний регистр и возвращает полученную строку.
String toLowerCase() – переводит все символы строки в нижний регистр и возвращает полученную строку
String[] split(String <регулярное выражение>) – разбивает строку по заданному регулярному выражению
Примечание: обратите внимание, что операции обработки строки не меняют исходную строку, а лишь используют ее в качестве параметра и возвращают полученный результат.