Витягування інформації зі строк у Java
Свайпніть щоб показати меню
Під час роботи з текстом у реальних застосунках рідко потрібен увесь рядок — найчастіше необхідна лише його невелика частина. Наприклад, ім'я в електронному листі, товар у повідомленні про замовлення або певне ключове слово, приховане в реченні. Java надає прості, але потужні інструменти для отримання саме тієї інформації, яка потрібна.
substring()
Якщо потрібно отримати "зріз" рядка за позиціями символів, використовуйте .substring(). Використовується нульова індексація — підрахунок починається з 0. Повертає новий об'єкт String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) вказує Java почати з індексу 6 (включно) і зупинитися перед індексом 11 (виключно) — виділення символів на позиціях з 6 по 10, що дає нам "Latte".
Якщо використати substring(start) лише з одним аргументом, Java виділяє все від цієї позиції до кінця рядка:
order.substring(6); // "Latte with oat milk"
indexOf()
Щоб знайти, де саме певний фрагмент тексту знаходиться всередині рядка, використовуйте .indexOf(). Замість вирізання тексту, цей метод визначає його розташування. Повертає int, що позначає початковий індекс збігу.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java сканує рядок зліва направо, поки не знайде "Latte", і повертає позицію її першого символу — 6. Якщо текст не знайдено в рядку, Java повертає -1.
Поєднання обох — реальний приклад
У цьому реальному прикладі поєднуються indexOf() та substring() для отримання імені користувача з електронної адреси.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") знаходить позицію символу @, потім substring(0, atPosition) витягує все від початку рядка до — але не включаючи — символу @. Результат — "anna.coffee". Замість жорсткого задання позицій, Java самостійно знаходить межу та витягує саме те, що потрібно.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат