Java程序员的Bash实用指南系列之字符串处理(目录)

Java程序员的Bash实用指南系列之字符串处理(目录)

在一般的计算机编程语言中,字符串处理是很重要的一块,Bash也是如此,如果掌握了字符串的处理,基本上就能够应付大部分的编程工作了。在Unix/Linux操作系统中,很多时候需要使用多个命令一起配合才能完成一个较复杂的任务,Shell提供了管道线、重定向、结构化编程等方式,把这些命令粘合在一起。因此,命令之间的接口数据的处理也就非常重要了,而这大部分都涉及到字符串处理。

《UNIX操作系统教程》 写道
  在UNIX系统的设计中,所采用的最基本的设计思想是将复杂的问题进行分解,用最简单、最基本的功能模块做堆积、连接、组合来解决复杂问题。这样在设计上不但可以保证每个基本模块功能单一、易于实现、设计结构清晰,而且组合使用的效果也会比较理想。

在这个系列中,我决定从一个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节 字符串翻转

相关推荐