您的位置:首页 > 运维架构 > Shell

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

2014-04-15 14:22 495 查看
文章出处:http://codingstandards.iteye.com/blog/1162455

  在一般的计算机编程语言中,字符串处理是很重要的一块,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
6判断字符串是否为空(不为空)if (s.isEmpty()); if (!s.isEmpty()); StringUtils.isEmpty
7字符串与默认值if (s == null) s = "default"; StringUtils.defaultString
8计算字符串长度s.length()
9获取字符串指定位置的字符、遍历字符串中的字符s.charAt(i)
10判断两个字符串是否相等(不等)if (s1.equals(s2))
11比较两个字符串大小(字典顺序、数值比较)s1.compareTo(s2)
12字符串连接String s = s1.concat(s2);
13字符串数组连接(以指定分隔符合并)String join(String[] a, String sep); StringUtils.join
14判断是否包含另外的字符串(多达6种方法)if (s.contains(s2))
15计算子串出现的次数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综合实例:自动生成版本号源文件
本文链接:http://codingstandards.iteye.com/blog/1162455 (转载请注明出处)



参考资料:

【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节
字符串翻转
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: