java String.split 无法使用小数点分割的问题

目录
  • String.split 无法使用小数点分割
    • 解决方法
  • String.split()方法的注意点(转义符)
    • 1.字符串中存在.和|的时候
    • 2.如果在一个字符串中有多个分隔符

String.split 无法使用小数点分割

当我分割文件名的时候,想使用split来进行分割,由于文件名使用的是".",当我使用此分割时候数组返回无效

当然也可以使用indexof+length的方式来截取

解决方法

连续使用"\\."对小数点进行转义即可

因此我去eclipse测试了下

public class HelloWorld {
    public static void main(String[] args) {
        String sTemp = "test.xls";
        String[] sTempArray = sTemp.split(".");
        System.out.print(sTempArray[0]);
        return;
    }
}

当我运行上面的代码的时候发现报错

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0    at HelloWorld.main(HelloWorld.java:5)

其实是小数点需要转义的

public class HelloWorld {
    public static void main(String[] args) {
        String sTemp = "test.xls";
        String[] sTempArray = sTemp.split(".");
        System.out.print(sTempArray[0]);
        return;
    }
}

运行结果如下

test

String.split()方法的注意点(转义符)

java.lang包中的String.split()方法

1.字符串中存在.和|的时候

不能直接用String.split(".")进行分隔,而是String.split("\\ .")或者String.split("\\ |");

因为直接写的话系统是无法识别的,需要通过转义符

用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

同时 \ 也是如此,在运用一定要用上转义符 ----  \\

具体可以查询jdk1.6或者1.8中的java.lang包中的String.split(String regex)方法中的规则表达式

2.如果在一个字符串中有多个分隔符

可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用

String.split("and | or");使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java中String.split()用法小结

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

  • Java:String.split()特殊字符处理操作

    一:需要特殊处理才能使用split()方法的字符 (1)需要使用"\\"或"[ ]"才能正确使用的字符集: ( ) [ ] { \ ? * + . ^ $ | (2)栗子: String str = "a0^33$\\53\6|!?3#6&5/*6~9 MY{.3+-/}*(]6[>=<-(8"; //这里以"("为例 String str_sub1 = str.split("\\(")

  • java关于String.split("|")的使用方式

    目录 String.split("|")的使用 我们先来写一段代码测试一下 你知道结果是什么吗? String.split() 特殊字符处理 split函数 特殊符号的处理 示例 String.split("|")的使用 我们先来写一段代码测试一下 public class TestSplit { public static void main(String[] a){ String test = "中文|英文"; print(test.spli

  • 浅谈java String.split丢失结尾空字符串的问题

    java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误 如下: String strtest = "1,2,"; String arry[] = strtest.split(","); 这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第三个数组元素,结尾的空字符串被丢弃了! 这个函数还有另一种重载方式 :public String [] split (String 

  • java String.split 无法使用小数点分割的问题

    目录 String.split 无法使用小数点分割 解决方法 String.split()方法的注意点(转义符) 1.字符串中存在.和|的时候 2.如果在一个字符串中有多个分隔符 String.split 无法使用小数点分割 当我分割文件名的时候,想使用split来进行分割,由于文件名使用的是".",当我使用此分割时候数组返回无效 当然也可以使用indexof+length的方式来截取 解决方法 连续使用"\\."对小数点进行转义即可 因此我去eclipse测试了下

  • Java中String.split()的最详细源码解读及注意事项

    目录 前言 一.split(regex,limit) 二.split(regex) 总结 前言 博主针对字符串分割时出现的各种空字符串问题,进入String类的源码看了一下,现作如下解读及演示: 一.split(regex,limit) 首先是带有两个参数的split方法: 作用: 将以给定正则表达式(regex)的字符串分隔开来 第一个参数是传入字符类型的分隔符,如 “,” 等(可以是任何字符串) 第二个参数传入整型的limit,代表的是将此字符串分割成n部分(这里的n就是limit). 返回

  • Java实现字符串的分割(基于String.split()方法)

    目录 前言 一.JDK-1.8-API文档说明(推荐阅读) 二.简单的使用 1.单个字符分隔 2.正则表达式 三.Java源码分析 1.源代码的测试代码 2.源代码运行原理图示 3.解读完代码后的总结(推荐阅读) 四.limit参数使用区别 1.limit=0 2.limit<0 3.limit>0 五.易错点(推荐阅读) 1.分割到第一个字符 2.转义字符\ 3.正则表达式修饰符不可用 总结 前言 本章对Java如何实现字符串的分割,是基于jDK1.8版本中的String.split()方法

  • java 中用split分割字符串,最后的空格等不被拆分的方法

    在使用java中的split按照"\t",拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分割,如 "d\tc\te\t\t\t"最后的几个\t就不会被分割,应该是在拆分之前对字符串进行了处理. 导致的拆分字段个数错误.查了一下APi,需要在split中添加参数-1,String[] values = line.split("\t",-1); imit 参数控制应用模式的次数,从而影响结果数组的长度 如果限

  • Java用split分割含一个或多个空格的字符串案例

    使用正则表达式: 1.String的split方法支持正则表达式: 2.正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次. 比如待分割字符串为: String str = "the sky is blue"; 分割函数为: public static String[] flipping(String str){ String[] string = str.split("\\s+");//分割一个或多个空格 //String[] string = str.sp

  • Java String中的split方法使用总结

    目录 String中split方法使用 1.一般用法 2.需要转义的分隔符 3.多个符号作为分隔符 4.空值的存储 String.split()需要的转义字符 转义字符 String中split方法使用 String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组. 1.一般用法 用一般的字符,例如@或,等符号做分隔符时: String address="上海@上海市@闵行区@吴中路"; String[] splitAddr=address.spl

随机推荐