【问题标题】:Split string with denominator not working [duplicate]用分母拆分字符串不起作用[重复]
【发布时间】:2013-03-28 21:32:24
【问题描述】:

快速提问:我想使用句点 (.) 作为分隔符来拆分 IP 地址(例如 192.168.0.1)。我似乎无法正确处理。我尝试运行不同的场景以查看是否是我的大脑功能障碍,但是当在数字而不是句点之间放置空格时,一切似乎都很好。怎样才能成功?

这是我用来运行它的一段脚本。

String ipAddress = "10.0.0.2";
String[] split = ipAddress.split(".");
//It's supposed to split into four parts and each part needs to be assigned to a var
String Part1 = split[0];
String Part2 = split[1];
String Part3 = split[2];
String Part4 = split[3];
//Just to make sure that it worked...
System.out.println(Part1 + " " + Part2 + " " + Part3 + " " + Part4);

在你质疑我的知识之前,我正在学习新的 Java 函数,但有时我无法让它工作。

保持真棒!

【问题讨论】:

    标签: java netbeans split assign


    【解决方案1】:

    Java中有一个处理IP地址的类,可以让你在不尝试自己解析字符串的情况下获得正确的表示:

    InetAddress a = InetAddress.getByName("10.0.0.2");
    byte[] b = a.getAddress();
    System.out.println(b[0]+" "+b[1]+" "+b[2]+" "+b[3]);
    

    【讨论】:

    • 这两个选项(这个答案和user_CC's answer)都包含在可能重复问题的答案中
    • 谢谢!这比 split() 函数更有效!
    【解决方案2】:

    试试这个

      String parts[] = ipAddress.split("\\.")    //this is double back slash
    

    【讨论】:

      【解决方案3】:

      试试

      String[] split = ipAddress.split("\\.");
      

      split() 方法接受正则表达式,而不是字符串,DOT 在正则表达式中有特殊含义。所以你需要用双斜杠转义它。

      或者你可以使用Pattern.quote

      String[] split = ipAddress.split(Pattern.quote("."));
      

      【讨论】:

      • 谢谢,这正是我想要的。
      【解决方案4】:

      使用 String parts[] = ipAddress.split("\\.")

      【讨论】:

        猜你喜欢
        • 2014-12-21
        • 2011-05-28
        • 1970-01-01
        • 2018-08-13
        • 2016-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多