Мне нужно предложение разделить слово и специальные символы в строке - PullRequest
1 голос
/ 28 мая 2020

Моя строка выглядит следующим образом

String responseBody = ["{\"event\":{\"commonEventHeader\":{\"sourceId\":\"\",\"startEpochMicrosec\":\"1590633627120000\",\"eventId\":\"135.16.61.40-Fault_bgp_neighbor_adjacency_down-192.20.126.67\",\"internalHeaderFields\"}"]

Я хочу разделить эту строку на event\":

Я пытаюсь ниже:

String[] json = responseBody.split("event\":"); 

Это не могу разделить, я тоже не получаю никаких ошибок. Пожалуйста, предложите.

Ответы [ 3 ]

1 голос
/ 28 мая 2020

Я не понимаю, почему вы не пытаетесь разобрать JSON, поскольку похоже, что вы знаете, что это JSON. Но, отвечая на вопрос, я думаю, это потому, что строка, которую вы пытаетесь разбить, на самом деле содержит символ \, и поэтому вам следует использовать:

String[] json = responseBody.split("event\\\\\":");

Почему так много \ ? Ну, фактическое регулярное выражение event\\":, но в Java экранируйте каждый \ и ".

0 голосов
/ 28 мая 2020

Ваш код содержит ошибку.

Исправленный код;

import java.util.Arrays;

public class Example
{
    public static void main(String[] args) {
        String responseBody = "[{\"event\":{\"commonEventHeader\":{\"sourceId\":\"\",\"startEpochMicrosec\":\"1590633627120000\",\"eventId\":\"135.16.61.40-Fault_bgp_neighbor_adjacency_down-192.20.126.67\",\"internalHeaderFields\"}";
        String[] json = responseBody.split("\\[\\{\"event\":");
        System.out.println(Arrays.asList(json));
    }
}

Вывод:

[, {"commonEventHeader":{"sourceId":"","startEpochMicrosec":"1590633627120000","eventId":"135.16.61.40-Fault_bgp_neighbor_adjacency_down-192.20.126.67","internalHeaderFields"}]  
0 голосов
/ 28 мая 2020

Использовать метод встроенной строки split("regex").

Пример:

 String s = "This is a String";

 //Split String

 String[] arr = s.split(" ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...