Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在这种情况下,如何使子字符串脱离字符串?_Java_Android_String - Fatal编程技术网

Java 在这种情况下,如何使子字符串脱离字符串?

Java 在这种情况下,如何使子字符串脱离字符串?,java,android,string,Java,Android,String,我有一个字符串如下所示: 我只想在两个单独的字符串中获取事件和参数的字符串。基本上我只想在变量1和“{”newStatus“:“disarmed”}”中显示“statusChanged”,然后在第二个变量中我需要这个。 如何执行此操作?尝试使用正则表达式 您还可以尝试先解析JSON字符串,然后从解析的对象获取字符串。考虑到提供的字符串不是有效的JSON,您可以尝试以下代码: List<String> result = Stream.of(s.split("data:"))

我有一个字符串如下所示:

我只想在两个单独的字符串中获取事件和参数的字符串。基本上我只想在变量1和“{”newStatus“:“disarmed”}”中显示“statusChanged”,然后在第二个变量中我需要这个。
如何执行此操作?

尝试使用正则表达式


您还可以尝试先解析JSON字符串,然后从解析的对象获取字符串。

考虑到提供的字符串不是有效的JSON,您可以尝试以下代码:

List<String> result = Stream.of(s.split("data:"))
            .map(String::trim)
            .filter(l -> l.startsWith("\"event\"") || l.startsWith("\"args\""))
            .map(l -> l.trim().split(":", 2)[1])
            .collect(Collectors.toList());
List result=Stream.of(s.split(“数据:”)
.map(字符串::trim)
.filter(l->l.startsWith(“\”事件“)| | l.startsWith(“\”参数“))
.map(l->l.trim().split(“:”,2)[1])
.collect(Collectors.toList());

在你的例子中,它将返回一个包含两个元素的列表。

好的,我最后像这样解决了它

 String[] eventAux = events[2].split(":");
 String[] argsAux = events[3].split(":");
 String event = eventAux[2].replace("\"", "");
 String arg =  argsAux[3].replace("\"", "").replace("}", "").replace("data", "");

试试这个,这里dataString是您的字符串

    String FirstString,SecondString;
    int FirstIndex,SecondIndex;
    FirstIndex = dataString.indexOf("data: \"event\": ") +15;// 15 characters "data: \"event\": "
    SecondIndex = dataString.indexOf("data: \"args\": ") +14;// 14 characters "data: \"args\": "
    FirstString = dataString.substring(FirstIndex,dataString.indexOf(",",FirstIndex));
    SecondString = dataString.substring(SecondIndex,dataString.indexOf("data:",SecondIndex));
    System.out.println(FirstString);
    System.out.println(SecondString);

它可以帮助您获取子字符串。

请将您的代码片段放在问题中,而不是图像链接,这样人们就更容易帮助您您好,欢迎使用StackOverflow!您似乎认为StackOverflow是一个发布问题并获得一些代码作为回报的站点。事实并非如此。您的问题很可能很快就会被关闭甚至删除。为了防止将来发生这种情况,请和。特别是,图像中的字符串甚至不是有效的JSON