内容介绍

本文主要介绍java中特殊字符做为split函数的参数,如:"." 、"\"、"|",双引号等,不能正确分隔源字符串的处理方法。

代码示例

使用"|"进行分隔的代码

String reclassData= "0,15,0|15,30,1|30,45,2|45,60,3|60,75,4|75,90,5|'NODATA','NODATA'";
String[] arrData = reclassData.split("|");

arrData的值如下:

很显然,这结果不是我们想要的预期结果,追其原因,因为"|"是特殊字符,在使用split函数时,需要转义,即:"\\|",修改后的代码如下:

String reclassData= "0,15,0|15,30,1|30,45,2|45,60,3|60,75,4|75,90,5|'NODATA','NODATA'";
String[] arrData = reclassData.split("\\|");

结果如下:

这次结果对了,像"|"这样的特殊字符还有".","\","$",在使用时,均需要转义。

String reclassData4 = "0,15,0$15,30,1$30,45,2$45,60,3$60,75,4$75,90,5$'NODATA','NODATA'";
String[] arrData4 = reclassData4.split("\\$");
String reclassData2 = "0,15,0.15,30,1.30,45,2.45,60,3.60,75,4.75,90,5.'NODATA','NODATA'";
String[] arrData2 = reclassData2.split("\\.");

在使用"\"分隔时,要注意在源字符串要使用"\\"进行转义,而split的参数要使用"\\\\",代码如下:

String reclassData3 = "0,15,0\\15,30,1\\30,45,2\\45,60,3\\60,75,4\\75,90,5\\'NODATA','NODATA'";
String[] arrData3 = reclassData3.split("\\\\");

尽量避免使用英文状态下的单引号、双引号来做为split的参数,如迫不得已,使用下面的方式来处理:

//双引号的处理
String reclassData5 = "0,15,0\"15,30,1\"30,45,2\"45,60,3\"60,75,4\"75,90,5\"'NODATA','NODATA'";
String[] arrData5 = reclassData5.split("\"");

java中split函数参数特殊字符的处理(转义),如:"." 、"\"、"|"的更多相关文章

  1. Java中Split函数的用法技巧

    在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split(&quo ...

  2. 正则化—Java中Split函数的用法技巧_(转载修改)

    原文地址:http://www.cnblogs.com/liubiqu/archive/2008/08/14/1267867.html java.lang.string.split split 方法  ...

  3. Java中main函数参数String args[] 和 String[] args 区别

    其实没什么区别的:当初我也是这样的疑问,呵呵:非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. S ...

  4. java中的函数参数

    当是数组时候,是引用传递

  5. java String.split()函数的用法分析

    java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...

  6. Python中split()函数的用法及实际使用示例

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  7. Java中构造函数传参数在基本数据类型和引用类型之间的区别

    Java中构造函数传参数在基本数据类型和引用类型的区别 如果构造函数中穿的参数为基本数据类型,如果在函数中没有返回值,在调用的时候不会发生改变:而如果是引用类型,改变的是存储的位置,所有不管有没有返回 ...

  8. JS中给函数参数添加默认值(多看课程)

    JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...

  9. Java中的可变参数以及foreach语句

    Java中的可变参数的定义格式如下: 返回值类型  方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型  变量名称 :数据名称){ ... } public ...

随机推荐

  1. javassist标识符

    符号 含义 $0, $1, $2, ... this and 方法的参数 $args 方法参数数组.它的类型为 Object[] $$ 所有实参.例如, m($$) 等价于 m($1,$2,...) ...

  2. Netty 基本原理

    转载. https://blog.csdn.net/qq_27641935/article/details/86543578 之前在看rocketmq源码时,发现底层用了Netty,顺便学习了一下,网 ...

  3. Java基础笔试练习(七)

    1.下列程序执行后结果为( )? class A { public int func1(int a, int b) { return a - b; } } class B extends A { pu ...

  4. STL源码剖析——序列式容器#2 List

    list就是链表的实现,链表是什么,我就不再解释了.list的好处就是每次插入或删除一个元素,都是常数的时空复杂度.但遍历或访问就需要O(n)的时间. List本身其实不难理解,难点在于某些功能函数的 ...

  5. input获得焦点时,如何让外边框不变蓝

    border 可应用于几乎所有有形的html元素,而outline 是针对链接.表单控件和ImageMap等元素设计. outline的效果将随元素的 focus 而自动出现,相应的随 blur 而自 ...

  6. pdfplumber模块初始用

    import pdfplumber import re def pdf_read(): pdf=pdfplumber.open('文件路径'")#文件路径,读取文件 page0=pdf.pa ...

  7. .net core web API使用Identity Server4 身份验证

    一.新建一个.net core web项目作为Identity server 4验证服务. 选择更改身份验证,然后再弹出的对话框里面选择个人用户账户. nuget 安装Identity server相 ...

  8. docker 执行 docker system prune 导致Azure Devops build镜像失败

    运行docker的centos上, 只分配了16G的空间, 装了个mysql, 还有个rancher, 就只剩下2G的空间了, Azure Devops build镜像就出错了, 显示存储空间不足, ...

  9. Vue异步加载高德地图API

    项目中用到了高德地图的API以及UI组件库,因为是直接把引入script写在index.html中,项目打包后运行在服务器,用浏览器访问加载第一次时会非常慢,主要原因是加载高德地图相关的js(近一分钟 ...

  10. HTML学习摘要4

    DAY 4 text-align 属性规定了元素中文本的水平对齐方式: <html> <body> <h1 style="text-align:center&q ...