Java类库中String类的match方法用法

Python014

Java类库中String类的match方法用法,第1张

纠正下,java中用到的是matchs,不是match,意思为比较两个值是否相等。举例:

String str = "1111111"

String str1 = "1111111"

System.out.println(str.matches(str1))//两个输出的值相等,所以是true

String format = "yyyy-MM-dd hh:mm:ss"

String time = "2010-07-13 03:30:50"

System.out.println(time.matches(format))//比较的是值不是类型,所有是false

输出结果:

java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。

都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")

String类的方法:

boolean b = "abc".matches("[a-z]{3}"

System.out.println(b)

Pattern类中的方法:

boolean b = Pattern.matches("[a-z]{3}","abc")

System.out.println(b)

Matcher类中的方法:

Pattern p = Pattern.compile("[a-z]{3}")

Matcher m = p.matcher("acc")

boolean b =m.matches()

System.out.println(b)

Java 的正则表达式用法和 JavaScript 的类似。

但是正则表达式的写法略有不同。在 Java 中正则表达式源是当中普通字符串来对待的,不需要像 JavaScript 那样用“/.../”包裹,另外,特别要注意正则表达式转义字符是双斜杠(因为在 Java 中,斜杠已是字符串的转义字符,双斜杠才代表斜杠)。

至于使用的语法,常规情况下,需要用到 Pattern 类,下面是一个例子:

import java.util.regex.Pattern // 导入 regex 包

import java.util.regex.Matcher

// public class ... {

Pattern p = Pattern.compile("Hello \\w") // 编译正则表达式

Matcher m = p.matcher("Hello World") // 开始匹配字符串

while (m.find()) { // 只要匹配则循环

 String result = m.group() // 返回匹配的子串

}

// }

但是有时候不用这么麻烦,String 类中有隐含的正则表达式匹配函数 matches() 和 split(),其中 split() 和 JavaScript 中的 match() 比较相似。下面是例子:

String s = "Hello A Hello B Hello C"

boolean bResult = s.matches("Hello [A-C]") // matches() 仅返回逻辑判断结果

String[] strResults = s.split("Hello [A-C]") // split() 可返回结果子串,放在数组当中

详细用法请参考 Java 语言手册。

http:// docs.oracle.com/javase/6/docs/api/java/lang/String.html

http:// docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html