如何在点后提取单词

Paw*_*wan 1 java

我有一个以下面的格式显示的字符串

String str = "query at.dddimin ntoreturn:1 reslen:1833 nscanned:1  nquery: { like_symbol: \"SC!JNJ\" }  nreturned:1 bytes:1817";
Run Code Online (Sandbox Code Playgroud)

我需要在at上面显示的点之后提取单词,这样输出应该是" dddimin "

我试过这种方式

String[] result = str.split("\\.");

System.out.println(result[1]);
Run Code Online (Sandbox Code Playgroud)

但我得到的输出低于

dddimin ntoreturn:1 reslen:1833 nscanned:1  nquery: { unique_symbol: "SC!JNJ" }  nreturned:1 bytes:1817
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何在点后得到这个词.

Ósc*_*pez 5

有关解决字符串模式匹配问题的一般方法,请考虑使用正则表达式.在下面的代码中,正则表达式\.(\S+)表示:查找以点开头的字符串匹配,后跟一个或多个非空格的字符,并捕获组中点后面的字符.在Java中,这将写成如下:

Pattern regex = Pattern.compile("\\.(\\S+)");
Matcher match = regex.matcher(str);
if (match.find())
    System.out.println(match.group(1));
Run Code Online (Sandbox Code Playgroud)

match.group(1)表达式将返回预期的结果:

dddimin
Run Code Online (Sandbox Code Playgroud)