String.split(String pattern)Java方法未按预期工作

rok*_*oki 3 java string split string-split

我正在使用String.split()将一些字符串划分为IP但是它returning an empty array,所以我使用String.substring()解决了我的问题,但我想知道为什么不按预期工作,我的代码是:

// filtrarIPs("196.168.0.1 127.0.0.1 255.23.44.1 100.168.100.1 90.168.0.1","168");
public static String filtrarIPs(String ips, String filtro) {
    String resultado = "";
    String[] lista = ips.split(" ");
    for (int c = 0; c < lista.length; c++) {
        String[] ipCorta = lista[c].split("."); // Returns an empty array
        if (ipCorta[1].compareTo(filtro) == 0) {
            resultado += lista[c] + " ";
        }
    }
    return resultado.trim();
}
Run Code Online (Sandbox Code Playgroud)

它应该返回String[] as {"196"."168"."0"."1"}....

ode*_*dsh 8

split可以使用正则表达式.'' 正则表达式表示法是单个字符.要在实际点上使用拆分拆分,您必须将其转义为:split("\\.").


Ren*_*ink 6

使用

String[] ipCorta = lista[c].split("\\.");
Run Code Online (Sandbox Code Playgroud)

在正则表达式中,.匹配几乎任何字符.如果你想匹配你必须逃脱它的点\\..