原本拟定的每周星期六的交流培训由于苏总临时有事取消了。
说说上周任务完成的情况吧:
1.对于苏总推荐的那基本书,图书馆有的就借了回来,没有的就网上下了电子版。一句话,基本都搞定了;书是有了,但是由于学习时间紧张,占时还没来得及细看。
2.果断下了debian的操作系统,但是由于介于网络条件不允许(校园网慢不说,还要客户端,纠结中),再加之自己本机上已经装了ubuntu,就将就用到了。
3.搭建了ruby on rails的开发环境,用了2天时间把ruby基本语法,基本用途了解了下,对于ruby这种纯面向对象动态的脚本语言,以及它在web开发中MVC的无缝连接,加之结合git版本管理,深深诠释了XP的内涵。
4.对于苏总最后提出的那个问题--------
简单实现英语单词单数到复数的转化(实现常规即可)
由于本人才疏学浅,加之对英语单词转化本身规则就不甚了解,于是对于本问题的解决大致分为两步:
1.上网收集了一些关于他人总结的英语变换规则。
2.根据变换规则,利用java正则,通过穷举所以情况(在具体代码中只是简单意思了一下)
示例代码(可以运行)
-------------------------------------------------------------------------------------------------------------------------
package com.util.chagetype;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SingleToDouble {
public static String toDouble(String target){
Pattern p1 = Pattern.compile("\\w*[aeioub]y"); //用于匹配以元音+y结尾的单词.
Pattern p2 = Pattern.compile("(\\w*[^aeioub])y"); //匹配以非元音+y结尾的单词.
Pattern p3 = Pattern.compile("\\w*[|[sx]|ch|sh]"); //匹配以s,x,ch,sh结尾的单词
Pattern p4 = Pattern.compile("\\w*[f|fe]"); //匹配以f,fe结尾的单词
Matcher m1 = p1.matcher(target);
Matcher m2 = p2.matcher(target);
Matcher m3 = p3.matcher(target);
Matcher m4 = p4.matcher(target);
if (target.equals("potato")||target.equals("tomato")) { //还有很多类似potato这样的词语以o结尾但是加es的就不再列举
return target + "es";
} else if (target.equals("belief")||target.equals("roof")) { //还有很多以f结尾但是加s的不再列举
return target + "s";
} else if (m4.matches()) {
if (target.lastIndexOf("f")== target.length()-1) {
return target.substring(0,target.length()-1)+"ves";
}else {
return target.substring(0,target.length()-2)+"ves";
}
}else if (m1.matches()) {
return target.substring(0, target.length()-1) + "ies";
} else if (m2.matches()) {
return target.replace(target, target+"s");
} else if (m3.matches()){
return target.replace(target, target+"es");
} else {
return target +"s";
}}
public static void main(String[] args){
String target = "" ;
//输入要转化的单词,可以完成多次输入转化,直到输入end结束
while (true) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
System.out.println("请输入待转换的单词:");
target = br.readLine().trim();
if (target.equals("end")) {
break;
}
target = SingleToDouble.toDouble(target);
System.out.println("-------------");
System.out.println("转换后的单词为:\n" + target);
System.out.println("-----------");
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("程序运行结束!!");
}
}