黑马程序员技术交流社区

标题: 关于正则表达式的一个小问题 [打印本页]

作者: 刘泰    时间: 2012-3-8 23:23
标题: 关于正则表达式的一个小问题
输入一段字符创,如 hello welcome
   每一个单词的首字母转化成大写,如果有多个空格,只保留一个空格,有数字的话,字母和数字之间用“-”分开,用正则表达式该字母写一个程序?
   用一般的方法比较麻烦
作者: 黄秋    时间: 2012-3-9 06:17
  1. import java.util.regex.Pattern;
  2. import java.util.regex.Matcher;
  3. public class Test {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 String s="we  are  at      the   b2b  web 2aT22f5p 2m2";
  7.                 s=s.replaceAll(" +"," ");    //多个空格只输出一个
  8.                 s=s.replaceAll("([A-Za-z])(\\d)","$1_$2"); //左字符+右数字用"_"间隔
  9.                 s=s.replaceAll("(\\d)([A-Za-z])","$1_$2");  //左数字+右字符用"_"间隔
  10.                 StringBuffer sb=new StringBuffer();
  11.                 Pattern p=Pattern.compile("\\b\\w|\\s\\w"); //首字母大写
  12.                 Matcher m=p.matcher(s);
  13.                 while(m.find()){
  14.                         m.appendReplacement(sb,m.group().toUpperCase());
  15.                 }
  16.                 m.appendTail(sb);
  17.                 System.out.println(sb);
  18.    }
  19. }
复制代码
这个估计用JavaScript 反而简单些。
作者: 刘泰    时间: 2012-3-9 12:44
学习了,多谢大虾




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2