(1)如何将字符串按指定的字符进行分割?. 使用 String 类的 split(regex) 方法,根据给定的正则表达式分割字符串。
String str = "abcabcabc"; String[] result = str.split("b");上面就是以 ‘b’ 为分割字符,结果为 {“a”, “ca”, “ca”, “c”}。 与 split 方法对立的功能是 String 类的静态方法 join 方法。
(2)如何用正则表达式搜索字符串并提取找到的内容? 这就要用到两个类,Matcher 类和 Pattern 类。
String content = "hello world!"; String regex = "\\w+"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(content); matcher.find(); System.out.println(matcher.group(0));这段代码会打印出 “hello”。matcher.find() 会进行一次匹配,然后我们可以使用 group 方法获取想要的组,不传递参数就默认选取 0 号分组,就是整个匹配到的字符串。
(3)如何用正则表达式将时间字符串从”yyyyMMdd”转换为”yyyy-MM-dd”? 这个是很简单的正则,就只有数字,用分组就很容易解决
String content = "20170505"; String regex = "(\\d{4})(\\d{2})(\\d{2})"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(content); matcher.find(); String result = matcher.group(1) + "-" + matcher.group(2) + "-" + matcher.group(3); System.out.println(result);输出 2017-05-05