Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Java8智能字符串解析_Java_String_Split - Fatal编程技术网

Java8智能字符串解析

Java8智能字符串解析,java,string,split,Java,String,Split,是否有一种聪明的方法(可能使用java8流)来提取字符串中的第一个ipAddress,格式与该字符串类似: some string, 151.0.247.187, 54.239.167.92, 52.49.172.244 谢谢我不鼓励使用split,因为这样你总是依赖于索引值,所以对我来说,更好的选择是regex String data="some string, 151.0.247.187, 54.239.167.92, 52.49.172.244"; Pattern pattern=Pa

是否有一种聪明的方法(可能使用java8流)来提取字符串中的第一个ipAddress,格式与该字符串类似:

some string, 151.0.247.187, 54.239.167.92, 52.49.172.244

谢谢

我不鼓励使用
split
,因为这样你总是依赖于索引值,所以对我来说,更好的选择是
regex

String data="some string, 151.0.247.187, 54.239.167.92, 52.49.172.244";
 Pattern pattern=Pattern.compile("([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})");
Matcher matcher = pattern.matcher(data);  
        if (matcher.find()) {  
            System.out.println(matcher.group());  
        }  
输出:

151.0.247.187
1.)查找Ip模式

2.)显示第一组


注意:网上有很多IP模式可用,你可以选择任何合适的模式

用逗号分割,取第一个?第一个标记可以是通用字符串或IP,我可以收到类似“some string,151.0.247.187,54.239.167.92,52.49.172.244”或“151.0.247.187,54.239.167.92,52.49.172.244”在这两种情况下,我都需要提取151.0.247.187Try
str.replaceFirst(“.*”(\\d+(\\.\\d+){3})。*”,“$1”)
。作为记录:如果你想避免否决票,你应该发布的不仅仅是要求。我们的想法是帮助您解决代码中的问题;这不是一个你来然后人们为你写代码的地方。至少在大多数情况下是这样的。String.split的可能副本使用正则表达式。此外,字符串不会编译,因为
\.
不是字符串中的有效转义序列。此外,如果“某些字符串”中恰好包含类似IP地址的字符序列,则此操作将失败。@VGR oops感谢您的输入错误,我是在网上测试的,但别担心,我也用java测试了这个,我知道我没有涵盖所有的情况,但有保证的输入给了我自由,还说还有很多其他更好的地方,这个正则表达式不是最好的,但在这种情况下,关于split,用户将如何知道哪个索引数组具有第一个IP(循环?)