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