Java - split . 失败

我们经常要用到String的split方法,然而当我们想当然的认为如果用.分割的话会报错:java.lang.ArrayIndexOutOfBoundsException: 0

为什么?解决方法是什么?

原因是split方法的参数其实是正则表达式,而.在正则表达式中有特殊含义,如果想要用.分割字符串的话,正确做法是:

String[] words = line.split("\\.");
时间: 2024-10-08 11:32:45

Java - split . 失败的相关文章

Java split方法源码分析

Java split方法源码分析 1 public String[] split(CharSequence input [, int limit]) { 2 int index = 0; // 指针 3 boolean matchLimited = limit > 0; // 是否限制匹配个数 4 ArrayList<String> matchList = new ArrayList<String>(); // 匹配结果队列 5 Matcher m = matcher(inp

Java Split以竖线作为分隔符

今天用到了Java中的Split函数,要以“|”作为分割符,当输入竖线时,发现出错,这个问题应该很久前就遇到过,不过太长时间就给忘了! 网上一搜,就找到了答案,这是因为split里面有两个参数,其中一个是“limit”,表示匹配参数的个数,另一就是匹配参数,split不是简单的匹配,里面输入的是“正则表达式”,所以问题就在这个正则表达式上了. 如果要实现以“|”作为分割符,那么应该输入“\\|”,而不是“|”. 所以应当是: str.split("\\|"); 注意:网上有个事“//|

java split(regex)和split(regex, limit)方法的使用技巧

在java字符串方法中有一个非常好用的方法split(),该方法可以把字符串直接分割为数组此方法有两个重载. 一是:split(regex),参数为要分隔的字符串或者正则表达式. 二是:ss.split(regex, limit).此方法可以的第二个参数一般不太常用, 这两个方法api给的解释是:limit 参数控制模式应用的次数,因此影响所得数组的长度.如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入

Java split(&quot;.&quot;) 和 split(&quot;\\.&quot;)

Java split(".") 和 split("\\.") 问题描述 使用 . 分解 IP 的各个段,并打印,如:192.168.10.123,分解为 192 168 10 123 使用如下程序处理: /** * Created by Miracle Luna on 2019/11/10 */ public class SplitIP { public static void main(String[] args) { String ip = "192.

java split小结(转)

2016.03.27下午参加华为机试,简单扫了一眼几个题的标题,选择了一道字符串问题,其实该题非常非常的简单,可以说是简单的不能再简单了,而且有很多种解法,上机时我选择了直接借用java提供的一些函数,以为自己能很快解决问题,结果却卡了很久,机子上测试时一直没能通过 晚上回到寝室,改了一下前面的代码,解题方法没变,经测试应该是正确的 具体题目记不大清楚了,题目大意是:输入一字符串,若该字符串中间包含"*",去掉"*"后输出:若该字符串首字符或尾字符为"*&

java Split 用法

在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2.如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

Java 快速失败( fail-fast ) 安全失败( fail-safe )

原文:http://www.cnblogs.com/ygj0930/p/6543350.html 快速失败( fail-fast ):当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个集合时,就会抛出一个ConcurrentModification异常. 在java.util包下的都是快速失败. 安全失败( fail-safe ):你在迭代的时候会去底层集合做一个拷贝,所以你在修改上层集合的时候是不会受影响的,不会抛出ConcurrentModification异常. 在java

Java Split()方法按点(.)切分注意细节

按点(.)切分,必须要注意转义!如:split("\\."). 例子: [java] view plain copy print? public class Test { public static void main(String[] args) { String s = "adhahd.txt"; String t[] = s.split("\\."); for(int i = 0; i < t.length; i++){ System

Java - split()函数和trim()函数的使用方法

split()函数和trim()函数的使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141 详细參考Java API: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html split()函数是依据參数如",", "-", " "等, 切割String字符串, 返回一个String的数组