Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вырежите да мне текст с Java {"text" : "два плюс два"}

Михаил Авчиников Мастер (1807), на голосовании 11 месяцев назад
Надо каждый раз вырезать этот текст

"{\n \"text\" : \"два плюс два\"\n}"
С 4 знака " до 5 знака " еще и косую черту убрать.
до 5 знака - 1 получается.

Где эта строка сама дается не нашел.
Это VoskApi.
Дополнен 1 год назад
Взял обычный исходник VoskApi я или туповатый или с Android Studio не знаком.
Поэтому что выдает строка hypothesis = в виде "{\n \"text\" : \" два плюс два\"\n}";
Ни как не смог эти кавычки черточки убрать.
Решил так.
Ответ спросил у Chat GPT 3.5 где то на простотах интернета.

String input = "{\n \"text\" : \"два плюс два\"\n}";
String extractedText = input.split("\"text\" : \"")[1].split("\"")[0];
System.out.println(extractedText);
Голосование за лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264450) 1 год назад
.. зависит от средства. На Python работает так:

 import re 
import json

initial_string = '{\n "text" : "два плюс два"\n}'

# Используем регулярное выражение для вырезания нужной подстроки
result = re.search(r'{\n\s+"text"\s+:\s+"(.+)"\n}', initial_string)

if result:
extracted_string = result.group(1)
json_result = '{"text" : "' + extracted_string + '"}'
print(json_result)
else:
print("Соответствующая подстрока не найдена.")
Михаил АвчиниковМастер (1807) 1 год назад
да спасибо конечно питонист !
Да ты вообще не годный ахахах.

вот ответ System.out.println("Hello World");
String input = "{\n \"text\" : \"два плюс два\"\n}";
String extractedText = input.split("\"text\" : \"")[1].split("\"")[0];
System.out.println(extractedText);
На удивление как бы я коряво не задал вопрос chat gpt 3.5 мне ответил на него.
Еще и код правильный дал !.

А так что докапался до тебя шучу.
Спасибо.
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264450) Михаил Авчиников,
текст с Java {"text" : "два плюс два"}
Вот был вопрос по извлечению этой строки. Именно её и дает мой пример. То же можно сделать и на Java. Так что не пиши ерунды...
Андрей Панарин Искусственный Интеллект (249533) 1 год назад
Это данные в формате JSON. Их можно превратить в структурированный объект при помощи JSON-парсера. Например, Gson или Jackson.

Конкретно для вашего случая с простыми однострочными полями можно было бы сделать костыльное решение - поискать по регулярному выражению.
 String json = "{\n  \"text\" : \"два плюс два\"\n}"; 
Pattern p = Pattern.compile("\"([^\"]*)\"\\s*:\\s*\"([^\"]*)\"");
Matcher m = p.matcher(json);
Map map = new HashMap<>();
while (m.find()) {
String field = m.group(1);
String value = m.group(2);
map.put(field, value);
}
System.out.println(map);
Но в общем случае это ненадежно: в значениях могут быть спецсимволы, кавычки, массивы и вложенные объекты, с которыми никакая регулярка не справится. Лучше взять парсер.
Михаил АвчиниковМастер (1807) 1 год назад
Зря мучался, а может и не зря ты мучался.
Там одно и то же всегда выходит.
Простая обертка.
Как ее убрать так и не понял.
При работе с Vosk Api.

Гугл задачи добавлял добавлял.
Психанул хрен !
Звука не бывает на уведомлениях от гугл задач !
И решил свое сделать.
А на мобилу свое сделать тоже не могу.

Возможно если сервер Vosk на Пк сделаю, а текст туда с мобилы буду отправлять другое дело.

А Android Studio че то вообще не разборался.
Но я его только вчера скачал.

Из таких помощников или ассистентов
Dicio понравился.
https://github.com/Stypox/dicio-android/releases

Писать можно или команды давать.
А вот задачи хрен поставишь.
И Vosk demo понравилось что даже с заблокированного телефона пишет с микра.

Я уже прям мечтаю номера телефонные записывать не трогая трубу, задачи добавлять.
Похожие вопросы