Java程序员的Bash实用指南系列之字符串处理(目录)
Java程序员的Bash实用指南系列之字符串处理(目录)
在一般的计算机编程语言中,字符串处理是很重要的一块,Bash也是如此,如果掌握了字符串的处理,基本上就能够应付大部分的编程工作了。在Unix/Linux操作系统中,很多时候需要使用多个命令一起配合才能完成一个较复杂的任务,Shell提供了管道线、重定向、结构化编程等方式,把这些命令粘合在一起。因此,命令之间的接口数据的处理也就非常重要了,而这大部分都涉及到字符串处理。
在这个系列中,我决定从一个Java程序员的角度来将Bash字符串处理的各个方面做个整理和总结,本系列资料的来源于互联网和个人实践,如有不妥之处,欢迎大家指出来。
序号 | 标题 | Java参考 |
1 | (字符串)变量声明 | String s; String s2 = "hello"; |
2 | 字符串的表示方式(字符串常量) | 'c', "string\r\n" |
3 | 给(字符串)变量赋值 | s2 = s1; s3 = "another"; |
4 | 字符串输出 | System.out.println(s); |
5 | 字符串输入(读取字符串) | Console.readLine; Scanner.nextLine |
判断字符串是否为空(不为空) | if(s.isEmpty());if(!s.isEmpty());StringUtils.isEmpty | |
字符串与默认值 | if(s==null)s="default";StringUtils.defaultString | |
计算字符串长度 | s.length() | |
获取字符串指定位置的字符、遍历字符串中的字符 | s.charAt(i) | |
判断两个字符串是否相等(不等) | if(s1.equals(s2)) | |
比较两个字符串大小(字典顺序、数值比较) | s1.compareTo(s2) | |
字符串连接 | Strings=s1.concat(s2); | |
字符串数组连接(以指定分隔符合并) | Stringjoin(String[]a,Stringsep);StringUtils.join | |
判断是否包含另外的字符串(多达6种方法) | if(s.contains(s2)) | |
计算子串出现的次数 | StringUtils.countMatches | |
16 | 判断是否以另外的字符串开头 | if (s.startsWith(s2)) |
17 | 判断是否以另外的字符串结尾 | if (s.endsWith(s2)) |
18 | 格式化字符串 | String.format(format, arg...) |
19 | 查找字符的位置 | int pos = s.indexOf(c); |
20 | 查找子串的位置 | int pos = s.indexOf(s2); |
21 | 字符串(正则)匹配 | if (s.matches(regex)) |
22 | 判断字符串是否数字串 | if (s.matches("\\d+")) |
23 | 字符串替换、子串删除、子串截取 | s.replace(s1, s2); s.replaceAll(s1, s2) |
24 | 文件路径字符串的处理 | |
25 | 字符串分隔(成数组) | String[] a = s.split(regex); |
26 | 根据位置和长度截取子串 | String s2 = s.substring(pos, len); |
27 | 转换大小写 | String s1 = s.toLowerCase(), s2 = s.toUpperCase(); |
28 | 去除前后空白 | String s2 = s.trim(); |
29 | 字符串翻转 | |
30 | 综合实例:自动生成版本号源文件 |
参考资料:
【1】JavaDoc java.lang.String
【2】Apache Commons-Lang Class StringUtils
【3】ABS Advanced Bash-Scripting Guide http://tldp.org/LDP/abs/html/
【4】51CTO 1.2 UNIX系统的主要特性 http://book.51cto.com/art/201001/179368.htm
【5】The Java Tutorials http://download.oracle.com/javase/tutorial
【6】Unix Shell Programming http://www.tutorialspoint.com/unix/unix-shell.htm
【7】http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html
修订历史:
2011-08-26 规划、整理资料
2011-08-31 编写目录并发布
2011-09-03 编写30节的草稿,调整了第1节和第2节的顺序
2011-09-05 发布第1节 (字符串)变量声明
2011-09-06 发布第2节 字符串的表示方式(字符串常量)
2011-09-07 发布第3节 给(字符串)变量赋值
2011-09-08 发布第4节 字符串输出
2011-09-13 发布第5节 字符串输入(读取字符串)
2011-09-14 发布第6节 判断字符串是否为空(不为空)
2011-09-15 发布第7节 字符串与默认值
2011-09-16 发布第8节 计算字符串长度
2011-09-19 发布第9节 获取字符串指定位置的字符、遍历字符串中的字符
2011-09-20 发布第10节 判断两个字符串是否相等(不等)
2011-09-21 发布第11节 比较两个字符串大小(字典顺序、数值比较)
2011-09-23 发布第12节 字符串连接
2011-09-26 发布第13节 字符串数组连接(以指定分隔符合并)
2011-09-27 发布第14节 判断是否包含另外的字符串(多达6种方法)
2011-09-28 发布第15节 计算子串出现的次数
2011-10-08 发布第16节 判断是否以另外的字符串开头
2011-10-09 发布第17节 判断是否以另外的字符串结尾
2011-10-17 发布第18节 格式化字符串
2011-10-18 发布第19节 查找字符的位置
2011-10-19 发布第20节 查找子串的位置
2011-10-24 发布第21节 字符串(正则)匹配
2011-10-25 发布第22节 判断字符串是否数字串
2011-10-26 发布第23节 字符串替换、子串删除、子串截取
2011-10-30 发布第24节 文件路径字符串的处理
2011-11-03 发布第25节 字符串分隔(成数组)
2011-11-04 发布第26节 根据位置和长度截取子串
2011-11-07 发布第27节 转换大小写
2011-11-08 发布第28节 去除前后空白
2011-11-09 发布第29节 字符串翻转