«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как разделить строки на пробелы, сохраняя при этом подстроки в кавычках в Java?

Как разделить строки на пробелы, сохраняя при этом подстроки в кавычках в Java?

Опубликовано 14 ноября 2024 г.
Просматривать:762

How to Split Strings on Spaces While Preserving Quoted Substrings in Java?

Разделение строк по пробелам, сохранение подстрок в кавычках в Java

Разбиение строк в Java — универсальный инструмент, но при его использовании могут возникнуть проблемы цитируемые подстроки. Чтобы эффективно разбить строку на основе пробелов, рассматривая подстроки в кавычках как одно слово, рассмотрите следующий метод:

Используя регулярные выражения, решение использует определенный шаблон, который идентифицирует токены как последовательности не заключенных в кавычки символы пробелов или последовательности в кавычках, содержащие любое количество символов. Результатом является список токенизированных элементов, которые точно сохраняют подстроки в кавычках.

Pattern pattern = Pattern.compile("([^\"]\\S*|\". ?\")\\s*");
Matcher matcher = pattern.matcher(str);
List tokens = new ArrayList();

while (matcher.find()) {
    String token = matcher.group(1);
    tokens.add(token.replace("\"", "")); // Remove surrounding quotes if needed
}

В этом примере строка «Местоположение \"Добро пожаловать в Индию\" Бангалор Чаннай \"ИТ-город\" Майсур" будет маркирована как:

Location
Welcome to india
Bangalore
Channai
IT city
Mysore

Этот метод элегантно обеспечивает сохранение подстрок в кавычках, гарантируя, что значимые фразы, такие как «Добро пожаловать в Индию» или «ИТ-город», сохраняются как отдельные токены.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3