Посимвольная обработка строк в Java
Строки в Java — это последовательности символов, с которыми часто требуется выполнять различные операции. Посимвольная обработка строк позволяет работать с каждым символом строки отдельно, что даёт гибкость в решении различных задач, связанных с текстом.
Цель:
- Научиться работать со строками на уровне отдельных символов.
- Получить навыки обработки строковых данных в Java для решения типичных задач.
Задания:
- Пользователь вводит пять строк. Выведите слово, состоящее из первой буквы каждой строки.
Для этой задачи нам нужно получить пять строк от пользователя и составить новое слово, состоящее из первых букв каждой строки.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String result = "";
for (int i = 0; i < 5; i++) {
System.out.println("Введите строку " + (i + 1) + ": ");
String input = scanner.nextLine();
result += input.charAt(0); // Берём первую букву
}
System.out.println("Новое слово: " + result);
}
}
- Посчитайте количество нулей в числе.
Для этой задачи мы будем обрабатывать строку как число и считать, сколько раз встречается символ '0'
.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите число: ");
String number = scanner.nextLine();
int count = 0;
for (int i = 0; i < number.length(); i++) {
if (number.charAt(i) == '0') {
count++;
}
}
System.out.println("Количество нулей: " + count);
}
}
- Найдите первую гласную букву в слове.
Гласные буквы — это 'a', 'e', 'i', 'o', 'u'
(и их заглавные варианты). Мы проверяем каждый символ и выводим первую найденную гласную.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слово: ");
String word = scanner.nextLine();
String vowels = "aeiouAEIOU";
for (int i = 0; i < word.length(); i++) {
if (vowels.indexOf(word.charAt(i)) != -1) {
System.out.println("Первая гласная: " + word.charAt(i));
break;
}
}
}
}
- Посчитайте количество согласных букв в слове.
Согласные буквы — это все буквы алфавита, за исключением гласных. Необходимо посчитать их количество в строке.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слово: ");
String word = scanner.nextLine();
String vowels = "aeiouAEIOU";
int consonantCount = 0;
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (Character.isLetter(ch) && vowels.indexOf(ch) == -1) {
consonantCount++;
}
}
System.out.println("Количество согласных: " + consonantCount);
}
}
- Выведите слово наоборот, при этом столбиком.
Нужно вывести каждый символ строки на новой строке в обратном порядке.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слово: ");
String word = scanner.nextLine();
for (int i = word.length() - 1; i >= 0; i--) {
System.out.println(word.charAt(i));
}
}
}
- Замените все гласные в слове на ‘у’.
Для этой задачи нужно заменить каждый символ гласной на 'у'
в строке.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слово: ");
String word = scanner.nextLine();
String vowels = "aeiouAEIOU";
String result = "";
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (vowels.indexOf(ch) != -1) {
result += 'у';
} else {
result += ch;
}
}
System.out.println("Результат: " + result);
}
}
- Пользователь вводит дробное число, выведите его дробную часть.
Здесь мы разбиваем строку с помощью символа .
и выводим всё, что идёт после него.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите дробное число: ");
String number = scanner.nextLine();
if (number.contains(".")) {
String[] parts = number.split("\\.");
System.out.println("Дробная часть: " + parts[1]);
} else {
System.out.println("Это не дробное число.");
}
}
}
- Пользователь вводит предложение. Замените в каждом слове этого предложения последнюю букву на ‘й’.
Для этого необходимо разделить предложение на слова, обработать каждое слово и заменить последнюю букву.
Пример решения:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите предложение: ");
String sentence = scanner.nextLine();
String[] words = sentence.split(" ");
String result = "";
for (String word : words) {
if (word.length() > 1) {
result += word.substring(0, word.length() - 1) + "й ";
} else {
result += "й "; // Если слово состоит из одной буквы
}
}
System.out.println("Результат: " + result.trim());
}
}
Заключение
В этой лекции мы рассмотрели различные аспекты посимвольной обработки строк в Java. Важные навыки, которые были развиты:
- Работа с отдельными символами строк.
- Использование циклов и методов класса String
для решения типичных задач.
- Модификация строк и выполнение специфических операций с символами.
Эти примеры помогут лучше освоить работу со строками и научиться решать задачи, связанные с обработкой текста в Java.
пример
https://gitlab.com/synergy9980417/tema2_urok7