详解Android 2.3 NDK的新特性
2012-03-04 22:29
387 查看
java程序中经常通过split截取字符串来取得其中的关键字。但是由于其中不同操作系统或者不同作者的习惯,经常会出现不同数量的空格,例如" "(3个空格);或者出现制表符、Tab符号" "(Tab键)。因此合理的通过任意数量的空白字符切割获取关键字非常重要。下面是我一步步摸索找出解决方案的过程。结局很重要,整个的思维过程也是相当有意义的。
1. 问题的提出:
利用java正则表达式的贪婪原则,提出解决方法:
2.另一个问题的提出:
3.字符串前后含有空白字符的情况:
1. 问题的提出:
String sample = "a b c d"; String[] arrays = sample.split(" "); for(String s : arrays) { System.out.println(s); }由于字符串中出现了不定个数的空格,所以截取的字符串数组中肯定会出现空格字符串,结果如下:
利用java正则表达式的贪婪原则,提出解决方法:
String sample = "a b c d"; String[] arrays = sample.split(" +"); for(String s : arrays) { System.out.println(s); }结果:
2.另一个问题的提出:
id userName sex 0 root male 1 user1 female我要从上述文件读取每一行字符串并且split,但是由于格式化以及各人之间的习惯,每一行中间都充斥着空格和Tab键,因此第一种解决方案无法运用到这上面去。想到正则表达式中有“\s”代表任意空白字符,这里便可以解决问题:
String sample1 = "0 root male"; String sample2 = "1 user1 female"; String[] arrays = sample1.split("\\s+"); for(String s : arrays) { System.out.println(s); } System.out.println("----------------------"); arrays = sample2.split("\\s+"); for(String s : arrays) { System.out.println(s); }结果:
3.字符串前后含有空白字符的情况:
String sample1 = " 0 root male"; String[] arrays = sample1.split("\\s+"); for(String s : arrays) { System.out.println(s); }这时候打印结果会在前面多一个空的字符串,解决方法是在split之前先进行trim()操作,由于trim()支持级联调用,可以写成下面的方式:
String sample1 = " 0 root male"; String[] arrays = sample1.trim().split("\\s+"); for(String s : arrays) { System.out.println(s); }结果Ok了。
相关文章推荐
- Android 2.3 NDK的新特性
- Android 2.3 NDK的新特性
- Android2.3 NDK 新特性
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
- Android的NDK开发(3)————JNI数据类型的详解
- Android Studio 2.3 特性:生成Android App Links(App links assistant)
- Android基础知识---7.1新特性:Shortcuts详解
- Android 5.X 新特性详解(五)——Toolbar
- Android 5.X 新特性详解(三)Activity过渡动画
- android菜单详解五:菜单的其它特性
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
- Android的NDK开发(3)————JNI数据类型的详解
- Android 6.0的新特性及权限机制的详解
- Android 5.X 新特性详解(五)——Notification
- android菜单详解五:菜单的其它特性
- Android的NDK开发(3)——JNI数据类型的详解
- Android Studio2.3正式版发布,包含一些新特性
- Android之Glide使用详解--集成、配置、使用、特性
- Android 2.3的十大新特性
- Android 5.X 新特性详解(一)——主题、Palette、阴影、着色和裁剪