无法通过 java split() 方法从字符串中获取数字

我有这段代码,它采用格式为 255.255.255.255 的 IP 地址(字符串),需要对这些数字(未在此处发布)执行一些后处理,但必须将字符串转换为整数数组。


我在这里使用了该split()方法,但它没有给我结果。我在使用正则表达式的 sp 上看到了其他答案,但没有一个对我有用。


import java.util.Scanner;

public class Main{

    public static void main(String args[]){

        String text;


        Scanner take=new Scanner(System.in);

        text=take.nextLine();

        String data[]=text.split(".",4);


        for(String w:data){

            System.out.println(w);

        }

        take.close();

    }

}

我试过输入 12.36.26.25


但它输出 36.26.25 应该是 12 36 26 25


有只小跳蛙
浏览 236回答 4
4回答

萧十郎

像这样使用它:        String example="12.36.26.25";        String data[]=example.split("\\.");        for(String w:data){            System.out.println(w);        }它会做你想做的;)像您一样使用 split(regex,limit) 实际上会拆分任何字符(因为 . 是任何字符的正则表达式)并且它基本上会删除前几个字符

慕盖茨4494581

使用java.util.regex包的解决方案:import java.util.regex.*;public class Main{     public static void main(String args[]){        String text = "12.36.26.25";        String separator = ".";        String[] data = text.split(Pattern.quote(separator));        System.out.println(data.length);        for(String w: data){            System.out.println(w);        }    }}Pattern.quote 将进行转义。

慕少森

另一种解决方案是使用sun.net.util.IPAddressUtil从 IPAddress 的给定字符串中提取数字,如下所示 -String ipAddressString = "10.20.30.40"; byte[] numbers = IPAddressUtil.textToNumericFormatV4(ipAddressString);使用此解决方案可以将 ByteArray 格式的数字转换为整数数组。

慕容3067478

只需更改此行String data[]=text.split(".",4);至String data[]=text.split("\\.");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java