字符串没有使用string.split正确拆分

时间:2012-08-15 12:06:41

标签: java string

我很尴尬地问这个问题,这是一个真正的新手问题,但整个上午都在踢我的屁股。开始: 我正在尝试使用三个句点作为分隔符将IP地址拆分为四个单独的字符串。这是我正在使用的代码:

     Toast.makeText(getBaseContext(),s,Toast.LENGTH_SHORT).show();
     String[] ip = s.split(".",4);
     String ip0ne = ip[0];
     String ipTwo = ip[1];
     String ipThree = ip[2];
     String ipFour = ip[3];

's'是包含ip地址'82 .163.99.82'的字符串,这是在吐司中验证的 问题是,ipOne,ipTwo和ipThree最终不包含任何东西,而ipFour最终包含'163.99.82'ip地址的第一个数字完全消失了。求救!

2 个答案:

答案 0 :(得分:8)

String[] ip = s.split("\\.",4);

字符串参数被评估为正则表达式,因此我们必须转义点(在java中我们也必须转义转义字符 - 因此:双反斜杠)

答案 1 :(得分:1)

split方法采用正则表达式 - 正则表达式中的.匹配任何字符:(就我个人而言,我认为任何非正则表达式API将正则表达式作为String ,方法名称中没有任何内容表示,但是嘿......

可以使用"\\."作为分割值 - 但我会亲自使用Guava及其Splitter类型:

private static final Splitter DOT_SPLITTER = Splitter.on('.').limit(4);