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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨浩 中级黑马   /  2013-1-31 03:47  /  2828 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请编写一个程序,可以将英语规则名词(不考虑不满足以下规则的英语单词)由单数变成复数。已知规则如下:     
a)以辅音字母y结尾,则将y改成i,再加es;     
b)以s,x,ch,sh结尾,则加es;     
c)以元音o结尾,则加es;     
d)其他情况直接加s。     
要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。
  1. public class A{  
  2.         public static void main(String[] args) {  
  3.                 method();  
  4.         }  
  5.         public static void method(){  
  6.             while(true){  
  7.                  Scanner scan=new Scanner(System.in);  
  8.                  String yuan=scan.next();  
  9.                  String hou="";  
  10.                  if(yuan.endsWith("y")){  
  11. //                         a)以辅音字母y结尾,则将y改成i,再加es;  
  12.                          hou=yuan.substring(0,yuan.length()-1)+"ies";//  
  13.                  }  
  14. //                 b)以s,x,ch,sh结尾,则加es;c)以元音o结尾,则加es;      
  15.                  else if(yuan.endsWith("o")||yuan.endsWith("s")||yuan.endsWith("x")||yuan.endsWith("ch")||yuan.endsWith("sh")){  
  16.                          hou=yuan+"es";  
  17.                  }else{  
  18.                          hou=yuan+"s";  
  19.                  }   
  20.                  System.out.println("原来的单词为:"+yuan+",变为复数的单词为:"+hou);  
  21.             }  
  22.         }  
  23. }  
复制代码
不熟悉正则。。谁会用正则的,改写一些,正则,常用的有哪点东西呢?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览
用正则表达式就是把if里的.endswith()改为 .matches()里面填正则表达式,以y结尾表示为^[a-z]+y$,判断以什么结尾,把前面的y改为什么就行了。判断以什么结尾一般不会用正则表达式的,正则表达式是用来判断一段字符串是否满足一定格式要求的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马