培训之路二

原本拟定的每周星期六的交流培训由于苏总临时有事取消了。

        说说上周任务完成的情况吧:

        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("程序运行结束!!");

}

}

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种集成电路芯片,可以通过配置电路连接来实现不同的功能。在FPGA进阶之路的第部分,我们将讨论几个重要的主题。 首先,我们将研究FPGA的架构设计。了解FPGA架构可以帮助我们更好地理解FPGA的内部结构和功能,从而优化设计。我们将学习FPGA中的逻辑单元、存储单元和I/O资源等基本组件,以及它们如何相互联系来实现复杂的电路功能。 接下来,我们将进一步研究FPGA的时序设计。时序设计是确保电路在不同时钟周期下正常工作的关键。我们将深入了解时钟和时钟域的概念,以及如何进行时序分析和时序约束。理解时序设计将有助于我们减少电路的时序故障,并获得更高的性能和可靠性。 此外,我们还将介绍FPGA的高级综合和硬件描述语言(HDL)。高级综合是一种将高级语言代码转换为FPGA可执行代码的技术,可以帮助我们更快地开发和验证电路设计。常用的HDL语言包括VHDL和Verilog,掌握这些语言可以帮助我们有效地描述和设计FPGA电路。 最后,我们将讨论FPGA的应用领域。随着技术的进步和FPGA的性能提升,它在许多领域都有广泛的应用,包括数字信号处理、网络通信、嵌入式系统和人工智能等。了解这些应用领域可以帮助我们选择适合的设计方法和工具,提高FPGA的实际应用价值。 总结起来,FPGA进阶之路的第部分主要涵盖了架构设计、时序设计、高级综合和HDL以及应用领域等方面。通过深入学习这些内容,我们可以更好地理解和应用FPGA,提高电路设计的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值