一、问题如下:

  1、先对一个已有字符串进行操作,使用     ;     进行分割:

//示例字符串
String string="sr1.db1.tb1.df1;sr2.db2.tb2.df2;";
//先用;进行分割
String a[]=string.split(";");
for(String str:a)
{
System.out.println(str);
}

  此处切割之后的结果是没有问题的,结果为:

  

  2、对切割完的结果再用     .     进行切割:

//示例字符串
String string="sr1.db1.tb1.df1;sr2.db2.tb2.df2;";
//先用;进行分割
String a[]=string.split(";");
for(String str:a)
{
String b[]=str.split(".");
for(String str2:b)
{
System.out.println(str2);
}
}

  此时就会报错,无法得出结果。

二、问题解析

  split方法的参数是正则表达式,在使用字符或字符串作切割符时要注意对某些字符做转码。

  就像之前问题里使用   ;   进行切割就没什么问题,但是使用   .   进行切割就会出现报错。     在正则表达式中表示任意字符,如果要通过.号做分割,则需要使用双斜杠或者Pattern.quote()方法对其进行转码:

split("\\.")
split(Pattern.quote("."))

  这样问题就得到了解决:

//示例字符串
String string="sr1.db1.tb1.df1;sr2.db2.tb2.df2;";
//先用;进行分割
String a[]=string.split(";");
for(String str:a)
{
String b[]=str.split(Pattern.quote("."));
for(String str2:b)
{
System.out.println(str2);
}
}

  结果如下:

  

Java开发:字符串切割split函数——切割符转码注意事项的更多相关文章

  1. Swift3.0 split函数切割字符串

    我们先看函数的原型: public func split(separator: Self.Iterator.Element, maxSplits: Int = default, omittingEmp ...

  2. .Net转Java.06.字符串的split的区别

    在Java遇到了将类似“1|2|3|4”的字符串分隔为数组的功能 这种问题能难倒有着十多年开发经验的的.NET码农? // Java代码 String s="1|2|3"; Str ...

  3. python 字符串的split()函数详解

    split翻译为分裂.  split()就是将一个字符串分裂成多个字符串组成的列表. split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割. //---当不带参数时 example: ...

  4. python 字符串的split()函数详解(转)

    作者:宋桓公 出处:http://www.cnblogs.com/douzi2/ 如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同 ...

  5. 层次数据结构字符串处理,split函数使用

    String str1 = "11@22#33,44,55,#bb#cc,dd,ee,#@DDD@TTT#999,#@"; String[] CX = str1.split(&qu ...

  6. java去除字符串的空格,换行符,水平制表符,回车

    final private String stringTrimAll(final String input) { if (null == input) return ""; // ...

  7. java 开发社区蔬菜、食品交易平台系统 源码

    开发环境:    Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+Mysql数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php? ...

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

    split()函数和trim()函数的使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141 详细參考Java ...

  9. Java中使用google.zxing快捷生成二维码(附工具类源码)

    移动互联网时代,基于手机端的各种活动扫码和收付款码层出不穷:那我们如何在Java中生成自己想要的二维码呢?下面就来讲讲在Java开发中使用 google.zxing 生成二维码. 一般情况下,Java ...

随机推荐

  1. ADFS登录界面自定义

    最近在做identityServer3+ADFS 实现域账号第三方授权验证,发现一个问题,在我们网站跳转到域账户登录页面,这个页面有点不美观,那么我们改如何自定义这个登录界面呢? ADFS安装配置这里 ...

  2. php 使用fsockopen 发送http请求

    需求背景 在公司开发这么一个需求,每天三次定时催付待客服催付状态的订单,设定每天15.16.17点三次执行job任务来给一批订单打电话催付,需要三个时间点都把待客服催付的订单拨打一遍电话,根据数据组统 ...

  3. Class文件和JVM的恩怨情仇

    类的加载时机 现在我们例子中生成的两个.class文件都会直接被加载到JVM中吗?? 虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“初始化”(class文件加载到JVM中): 创建类的实例 ...

  4. vue学习指南:第一篇 - vue的介绍

    三大主流框架: 1. Vue.js 是目前最火的一个前端框架,react是最流行的前端框架 (react除了开发网站,还可以开发手机app,Vue语法也是可以用于手机App开发的,需要借助于wexx) ...

  5. LeetCode——Nth Highest Salary

    Write a SQL query to get the nth highest salary from the Employee table. +----+--------+ | Id | Sala ...

  6. this.$route和this.$router区别

    this.$route 和 this.$router 这两个对象有什么区别: this.$route 是当前路由跳转对象,包含当前路由的name.path.query.params等属性 this.$ ...

  7. ajax的jQuery的表单序列化获取参数serialize()

    需要引入jQuery.js才能使用$("form表单的id").serialize()可获取form表单里面所有表单元素的值和name属性值,按顺序拼接成查询字符串格式为name值 ...

  8. mysql系列3 SQL语法基础

    1.创建数据库(语法) 2.创建(数据库)表(语法) 复制新的空表举个例子: mysql> use course;Reading table information for completion ...

  9. vs2017离线安装vs tools for unity

    Visual Studio Tools for Unity 从vs2017开始就不提供单独的安装包下载,需要通过vs安装程序在线安装. vs2017离线安装vs tools for unity 那么如 ...

  10. ES6的相关语法

    1.ES6的兼容性 常用的是babel(也叫做browser.js); 用法: 直接在script中引用,把相应的script里面的type设置为text/babel 2.箭头函数 注意:1.如果只有 ...