一、问题如下:

  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);
}
}

  结果如下:

  

最新文章

  1. JSP 9大内置对象详解
  2. Uva11538 排列组合水题
  3. MQTT协议(一)
  4. hibernate3与ehcache-2.8.3配合使用,在多个SessionFactory实例的情况下出现“Another unnamed CacheManager already exists in the same VM”问题
  5. android 学习随笔二十四(动画:帧动画)
  6. Linux 配置 vimrc
  7. 华硕电脑安装ubuntu出现问题及决方案
  8. HDU 4662 MU Puzzle 简单找规律
  9. javascript对象事件绑定方法
  10. HDU 2985 Another lottery(坑题)
  11. java获取当前路径的几种方法
  12. django开发中利用 缓存文件 进行页面缓存
  13. Django restful-framework初步学习
  14. VS Code 常用命令记录
  15. [Swift]LeetCode541. 反转字符串 II | Reverse String II
  16. Linux系统使用
  17. Windows Server 2012 R2 设置 NTP 服务
  18. CommandLineParser命令行解析类
  19. C# httpRequest Soap请求
  20. PHP 使用 MongoDB

热门文章

  1. eclipse查看一个方法被谁调用的快捷键
  2. java基于NIO的分散读取文件,然后统一聚合后写入文件
  3. JQ动态生成节点绑定事件无效问题
  4. 重温CLR(十八) 运行时序列化
  5. 解决eclipse打开文件乱码
  6. 【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能
  7. office 所有后缀对应的 content-type
  8. python 检查站点是否可以访问
  9. pushad与popad
  10. linux的ftp操作