利用Pattern和Matcher模仿String方法操作字符串
2013-08-12 13:02
260 查看
首先写自己的类MyString:
利用main函数来检查输出结果,具体代码如下:
输出结果如下图:
/* 此类是用自己写的String类来练习正则表达式的几个功能的,包括查找、替换、分割和提取 */ import java.util.regex.*; public class MyString { private String str; /** * @deprecated:生成一个MyString实例 * @param str:初始化MyString * */ public MyString(String str) { this.str = str; } /** * @deprecated:获得字符串 * @return:返回MyString的字符串 * */ public String getString() { return str; } /** * @deprecated:判断MyString对象里是否含有符合regex的字符串 * @param regex:正则表达式 * @return:存在返回true,否则返回false * */ public boolean contains(String regex) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(this.str); return m.find(); } /** * @deprecated:用replacement替换所有符合regex规则的字符串 * @param regex:正则表达式 * @param replacement:用来替换满足要求的字符串 * */ public void replaceAll(String regex,String replacement) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(this.str); this.str = m.replaceAll(replacement); } /** * @deprecated:按照regex来分割字符串 * @param regex:正则表达式 * @return:返回分割出来的字符串组成的字符串数组 * */ public String[] split(String regex) { Pattern p = Pattern.compile(regex); return p.split(this.str); } /** * @deprecated:按照regex来查找字符串 * @param regex:正则表达式 * @return:返回查找出来的咯咯字符串组成的字符串数组 * */ public String[] find(String regex) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(this.str); int i = 0; while(m.find()) { ++i; } String str[] = new String [i]; m = p.matcher(this.str); i = 0; while(m.find()) { str[i++] =m.group(); } return str; } }
利用main函数来检查输出结果,具体代码如下:
public class MyStringDemo { public static void main(String str[]) { MyString s = new MyString("www.aiai.edu.cn www.ahjzu.edu.cn"); //测试contains函数的正确性 System.out.println("检查字符串中是否有相应的字符串,如果有结果是true,没有结果是false。结果是:"); System.out.println(s.contains("a\\D*u"));//查找以a开头u结尾中间是非数字的字符串 //测试replaceAll函数的正确性 s.replaceAll("a\\D{5,10}u","google.com");//查找以a开头u结尾中间是非数字,且长度在5-10之间的字符串 System.out.println("替换后的字符串是:" + s.getString()); //测试split函数的正确性 System.out.println("现在打印分割后的字符串:"); for(String st:s.split("google")) { System.out.println(st); } //测试find函数的正确性 System.out.println("现在打印查找到的字符串:"); for(String st:s.find("w{3}+\\.[\\.\\w]+\\.cn")) //提取以www.开头.cn结尾的字符串 { System.out.println(st); } } }
输出结果如下图:
相关文章推荐
- java关于String字符串操作的方法
- string字符串的方法(利用正则表达式分隔字符串,过滤无关内容,输出单词)
- JavaScript字符串String和Array操作的有趣方法
- 字符串(string)操作的相关方法
- JavaScript字符串String和Array操作的有趣方法
- C#入门篇6-3:字符串操作 string的ToString() Split()和Copy()方法
- 【廖雪峰 python教程 课后题 切片】利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- 【廖雪峰 python教程 课后题 切片】利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- 字符串模版替换的方法MessageFormat.format(String pattern, Object ... arguments)
- js String对象中常用方法小结(字符串操作)
- String字符串补0操作常见方法
- Xml解析方法以及String类型字符串利用子字符串对其切割方法
- java字符串格式化:String.format()方法的使用
- android TextView字体设置最少占多少行. 及其 Java String 字符串操作 . .
- NSMutableString可变字符串的定义及常用方法
- boost——string_alog字符串的操作(五)
- Python内置字符串操作处理方法详解
- C#操作字符串方法总结
- 黄聪:Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- C#操作字符串方法总结<转>