A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘泰 中级黑马   /  2012-3-8 23:23  /  1212 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

输入一段字符创,如 hello welcome
   每一个单词的首字母转化成大写,如果有多个空格,只保留一个空格,有数字的话,字母和数字之间用“-”分开,用正则表达式该字母写一个程序?
   用一般的方法比较麻烦

2 个回复

倒序浏览
  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 反而简单些。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
学习了,多谢大虾
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马