Java字符串常用方法和正则表达式
来源:互联网 发布:归并排序java实现 编辑:程序博客网 时间:2024/06/05 14:34
这里只列一些常见的方法,更多方法请参考:Oracle在线API
1.String常用方法
a. startsWith()
:字符串是否以某个字符或者字符串开头。
public static void testStartsWith() { String string = "mike,wang,lol,gege,meizi"; System.out.println(string.startsWith("mik")); // true System.out.println(string.startsWith("mikasd")); // false }
b. endsWith()
:字符串是否以某个字符或者字符串结尾。
public static void testEndsWith() { String string = "mike,wang,lol,gege,meizi"; System.out.println(string.endsWith("meizi")); // true System.out.println(string.endsWith("mei")); // false }
c. matches()
:匹配正则表达式,正则表达式后面详细讲,先给一个例子
public static void testMatches() { String string = "mikewanglolgegemeizi"; System.out.println(string.matches("\\w+")); // true System.out.println(string.matches("\\W+")); // false }
d. split()
:将匹配的字符切割成数组
public static void testSplit() { String string = "mike,wang,lol,gege,meizi"; // 去掉, String[] strings = string.split(","); for (String string2 : strings) { System.out.println(string2); // mike wang lol gege meizi } String string1 = "mike,wang,lol,gege,meizi"; // 去掉以m开头的字符串 String[] strings1 = string1.split("m\\w+"); for (String string2 : strings1) { System.out.println(string2); // ,wang,lol,gege } }
e. replace()
:覆盖匹配的字符
public static void testReplace() { String string = "mike,wang,lol,gege,meizi"; System.out.println(string.replace("mike", "xiaowang")); // xiaowang,wang,lol,gege,meizi System.out.println(string.replace("mikse", "xiaowang"));// mike,wang,lol,gege,meizi }
f. replaceAll()
:覆盖正则匹配的全部字符,适合大数据处理
public static void testReplaceAll(){ String string = "mike,wang,lol,gege,meizi"; //将符合正则表达式的部分用某个字符串来代替,特别适合处理大量数据时,所以我们接下来要重点介绍正则表达式 System.out.println(string.replaceAll("\\w+", "xiaowang")); //xiaowang,xiaowang,xiaowang,xiaowang,xiaowang }
g. substring()
:截取
public static void testSubstring() { String string = "mike,wang,lol,gege,meizi"; System.out.println(string.substring(0, string.length() - 4));// 截取0到length-4形成一个新的字符串 //mike,wang,lol,gege,m }
H.当然还有一些就不一一介绍了,自己翻API去吧。
2.StringBuffer常用方法
1.append()
:串联
public static void testAppend() { StringBuffer buffer = new StringBuffer("Init-"); buffer.append("Buffer-"); buffer.append("Entity"); System.out.println(buffer.toString()); //Init-Buffer-Entity }
2.delete()
:删除
public static void testDelete() { StringBuffer buffer = new StringBuffer("Init-"); buffer.append("Buffer-"); buffer.append("Entity"); buffer.delete(2, buffer.length() - 7); System.out.println(buffer.toString()); //In-Entity }
3.insert()
:插入数字,看到结果,我只能说这个方法很诡异
public static void testInsert() { StringBuffer buffer = new StringBuffer("Init-"); buffer.append("Buffer-"); buffer.append("Entity-"); buffer.insert(3,buffer.length()-1).append("Insert value"); System.out.println(buffer.toString()); //Ini18t-Buffer-Entity-Insert value }
4.replace()
:覆盖
public static void testReplace() { StringBuffer buffer = new StringBuffer("Init-"); buffer.append("Buffer-"); buffer.append("Entity"); buffer.replace(2, buffer.length() -5, "replace value"); System.out.println(buffer.toString()); //Inreplace valuentity }
5.其他的方法参考API,真的没什么太多介绍的。
3. StringBuilder常用方法 参考StringBuffer的方法,两个类除了线程安不安全,其他地方一模一样。
字符串与正则表达式的结合
- 正则表达式这个工具,在厉害的人手上会发挥巨大的威力,这是Thinking in java中特别强调的,也是我们单独把字符串和正则表达式划出来将的原因。具体到开发中,关键字过滤,例如知乎这样的网站,不允许你去搜索现任国家领导人信息,就是先把不能搜索的数据存到数据库中,之后利用正则表达式把你输入的信息和数据库里的敏感信息去比对,比对完,没这些东西就放开权限让你去检索内容,不然就给个查无此人的错误页面。可以看到,正则表达式这种简洁,动态的语言,在处理大批量数据这方面有着得天独有的优势。
- 根据Oracle的文档,找到java.util.regex包,我们先把正则表达式的一部分语法搬出来。
Construct MatchesCharactersx The character x\\ The backslash character\0n The character with octal value 0n (0 <= n <= 7)\0nn The character with octal value 0nn (0 <= n <= 7)\0mnn The character with octal value 0mnn (0 <= m <= 3, 0 <= n <= 7)\xhh The character with hexadecimal value 0xhh\uhhhh The character with hexadecimal value 0xhhhh\x{h...h} The character with hexadecimal value 0xh...h (Character.MIN_CODE_POINT <= 0xh...h <= Character.MAX_CODE_POINT)\t The tab character ('\u0009')\n The newline (line feed) character ('\u000A')\r The carriage-return character ('\u000D')\f The form-feed character ('\u000C')\a The alert (bell) character ('\u0007')\e The escape character ('\u001B')\cx The control character corresponding to xCharacter classes[abc] a, b, or c (simple class)[^abc] Any character except a, b, or c (negation)[a-zA-Z] a through z or A through Z, inclusive (range)[a-d[m-p]] a through d, or m through p: [a-dm-p] (union)[a-z&&[def]] d, e, or f (intersection)[a-z&&[^bc]] a through z, except for b and c: [ad-z] (subtraction)[a-z&&[^m-p]] a through z, and not m through p: [a-lq-z](subtraction)Predefined character classes. Any character (may or may not match line terminators)\d A digit: [0-9]\D A non-digit: [^0-9]\s A whitespace character: [ \t\n\x0B\f\r]\S A non-whitespace character: [^\s]\w A word character: [a-zA-Z_0-9]\W A non-word character: [^\w]
本来想详细写的,看了几篇博文,把书上这部分也看了一遍,发现自己无法掌握基本的东西,力不能及,所以放弃了,待以后再补充吧。
- 正则表达式基础
- JAVA正则表达式:Pattern类与Matcher类详解(转)
- java正则表达式的应用
0 0
- Java字符串常用方法和正则表达式
- Java使用正则表达式验证常用字符串
- java正则表达式常用字段匹配方法
- Java中正则表达式常用方法汇总
- java正则表达式常用方法_me
- JavaScript常用的方法和正则表达式
- 正则表达式的常用方法和属性
- 正则表达式的常用方法和属性
- 正则表达式常用方法和构造摘要
- java分割字符串和正则表达式
- JAVA学习笔记-字符串和正则表达式
- JAVA 正则表达式 和字符串格式化
- java分割字符串和正则表达式
- Java字符串格式化和正则表达式
- 正则表达式常用方法
- 正则表达式常用方法
- 正则表达式和Java常用对象
- asp下常用正则表达式及字符串验证方法
- TensorFlow学习(二):变量常量类型
- 高中OJ3783. 【NOIP2014模拟8.19】签到题
- 自定义view,继承ViewGroup实现可换行的布局容器
- linux cifs共享 修改user的uid
- Linux服务器下重启svn服务
- Java字符串常用方法和正则表达式
- Retrofit2实现App自动更新
- mac SVN命令使用详解
- HDU ACM 11 2097 Sky数
- JavaScript中的原型
- DirectX学习--1
- Hive动态分区&Partition中跟函数
- 论JS闭包
- "The requested profile "pom.xml" could not be activated because it does not exist."