java中split函数参数特殊字符的处理(转义),如:"." 、"\"、"|"
内容介绍
本文主要介绍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函数参数特殊字符的处理(转义),如:"." 、"\"、"|"的更多相关文章
- Java中Split函数的用法技巧
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split(&quo ...
- 正则化—Java中Split函数的用法技巧_(转载修改)
原文地址:http://www.cnblogs.com/liubiqu/archive/2008/08/14/1267867.html java.lang.string.split split 方法 ...
- Java中main函数参数String args[] 和 String[] args 区别
其实没什么区别的:当初我也是这样的疑问,呵呵:非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. S ...
- java中的函数参数
当是数组时候,是引用传递
- java String.split()函数的用法分析
java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...
- Python中split()函数的用法及实际使用示例
Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...
- Java中构造函数传参数在基本数据类型和引用类型之间的区别
Java中构造函数传参数在基本数据类型和引用类型的区别 如果构造函数中穿的参数为基本数据类型,如果在函数中没有返回值,在调用的时候不会发生改变:而如果是引用类型,改变的是存储的位置,所有不管有没有返回 ...
- JS中给函数参数添加默认值(多看课程)
JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...
- Java中的可变参数以及foreach语句
Java中的可变参数的定义格式如下: 返回值类型 方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型 变量名称 :数据名称){ ... } public ...
随机推荐
- [转帖]GNU, Free Software and Open Source 自由软件与开源软件
GNU, Free Software and Open Source 自由软件与开源软件 https://blog.csdn.net/icycolawater/article/details/7792 ...
- Prometheus入门到放弃(4)之cadvisor监控docker容器
Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行. 1.下载镜像 [root@prometheus-server ...
- Linux设置普通用户无密码sudo权限
配置普通用户无密码sudo权限: root用户进入到Linux系统的/etc目录下 cd /etc 将sudoers文件赋予写的权限 chmod u+w /etc/sudoers 编辑sudoers文 ...
- quartz2.3.0(二)触发器Trigger花式Scheduler调度job
任务类 package org.quartz.examples.example2; import java.util.Date; import org.slf4j.Logger; import org ...
- jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例
Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...
- mpvue + vant + flyio 小程序项目总结
vant 的使用 我开始是 npm 导入,然后 import,使用不了. 找了各种方法,最后还是下载文件,然后找到 dist 文件夹,复制到项目里,我是放在 static 文件夹,文件名 dist 重 ...
- 在本地库不连接远远程库的情况下操作远程库-----sql server
--创建链接服务器 --前面都是固定不变的------q:自己随便起-----38.107.111.185:远程服务器的ip exec sp_addlinkedserver 'q', ' ', 'SQ ...
- .net core使用ocelot---第三篇 日志记录
简介 .net core使用ocelot---第一篇 简单使用 .net core使用ocelot---第二篇 身份验证使用 上篇介绍使用asp.net core 创建API网关.本文将介绍Ocelo ...
- windows下cuda的安装
1. cuda的安装 到 https://developer.nvidia.com/cuda-toolkit 去下载.在安装的时候一定要自定义安装,否则将会安装很多无用的东西.安装的选项,可以选择不更 ...
- “proxy” in package.json must be a string 解决办法
今天学习一个react项目.想从本地服务器获取数据. 直接axios.get('http://localhost:80/api/react/header.json'),报错跨域. 网上查了下,需要在p ...