zoukankan      html  css  js  c++  java
  • java中的split使用的是正则表达式

    听说这个split方法比那个StringTokenizer效率高一点,今天刚好用上,就拿来试试,没有想到一试就出问题了,把折分结果打在控制台上,结果居然是空的,我要折分的字符串是“5#1|7#2|11#3”刚用这里str.split("|")时就出问题了,看了下面这篇文章,将其改为str.split("//|")就OK了,这个|在正则表达式中也是个特殊字符。回头还得弄弄正则表达式了。
    public static void main(string[] args) {
    string value = "192.168.128.33";
    string[] names = value.split(".");
    for (int i = 0; i < names.length; i++) {
    system.out.println(names[i]);
    }

    }
    运行结果:

    对,没看错!没有任何输出!
    让我们来看看 split 方法的方法签名吧:
    public string[] split(string regex)
    这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式

    ,看了 split 方法的实现代码就更坚定了我们的信心:
    public string[] split(string regex, int limit) {
    return pattern.compile(regex).split(this, limit);
    }
    split 的实现直接调用的 matcher 类的 split 的方法。读者已经知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。
    public static void main(string[] args) {
    string value = "192.168.128.33";
    //注意要加//,要不出不来,yeah
    string[] names = value.split("//.");
    for (int i = 0; i < names.length; i++) {
    system.out.println(names[i]);
    }

    }
    输出结果:
    192
    168
    128
    33
     

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 相关阅读:
    CodeForces 734F Anton and School
    CodeForces 733F Drivers Dissatisfaction
    CodeForces 733C Epidemic in Monstropolis
    ZOJ 3498 Javabeans
    ZOJ 3497 Mistwald
    ZOJ 3495 Lego Bricks
    CodeForces 732F Tourist Reform
    CodeForces 732E Sockets
    CodeForces 731E Funny Game
    CodeForces 731D 80-th Level Archeology
  • 原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10341216.html
Copyright © 2011-2022 走看看