做网站对客户有什么帮助,手机网站懒人模板,企业网站手机版模板,全屏背景网站如何做到自适应词数统计系统。作业解析#xff1a;这次作业的内容是从本地读取一个程序代码#xff0c;计算出这个程序中的行数#xff0c;单词数#xff0c;也可进行拓展。实现语言#xff1a;java编程思路#xff1a;程序是由各种单词和符号组成的#xff0c;单词包括关键字#xf…词数统计系统。作业解析这次作业的内容是从本地读取一个程序代码计算出这个程序中的行数单词数也可进行拓展。实现语言java编程思路程序是由各种单词和符号组成的单词包括关键字标识符这些单词组成的符号包括各种运算符或者是分隔符...在这里统分为字符和单词。在java语言中可以实例化一个FileReader内读取程序再使用BufferReader从字符输入流中读取文本并将字符存入缓冲区以便能提供字符、数组和线段的高效读取BufferReader类的readline()函数能够读取一个文本行返回一个字符串。这时可以使用String类的split()函数split()函数能够分割字符串参数为正则表达式返回值为一个字符串数组。写程序中遇到的困难基本都出在这里下边会细说。之后便可以针对分割结果进行计数运行结果如下图图1是运行结果图2 是测试的程序。调试过程这测试的过程中发现统计的行数总会莫名其妙的多很多经过一番查找发现是那些以字符结尾然后换行的句子会出现这个问题一番查找之后了解到split()函数在同时遇到多个需要剔除的字符时会在返回结果里创建一个“”的元素加一个判断结构便解决了问题。在书写的正则表达式里含有.|(){}会报错查看了之后有两个原因1°.|为转义字符前边需要添加\\。2°编译器会把表达式内的(){}识别为运算符(){}导致语法错误。图1图2经验总结写这个程序学习另一个很重要的知识--正则表达式下面简单概括一下正则表达式。定义与用途正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串在编写处理字符串的程序或网页时经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说正则表达式就是记录文本规则的代码。由此可知我们可以使用正则表达式对给定字符串进行匹配查看它是否满足我们定下的正则表达规则。与此相似我们也可以通过正则表达式从字符串中获取我们需要的部分。语法正则表达式是由一些普通字符和一些元字符组成的。其中普通字符包括大小写的字母和数字而元字符则具有特殊的含义。一个正则表达式通常被称为一个模式(pattern)为用来描述或者匹配一系列符合某个句法规则的字符串。例如Handel、Händel和Haendel这三个字符串都可以由“H(a|ä|ae)ndel”这个模式来描述。大部分正则表达式的形式都有如下的结构选择|竖直分隔符代表选择。例如“gray|grey”可以匹配grey或gray。数量限定某个字符后的数量限定符用来限定前面这个字符允许出现的个数。最常见的数量限定符包括“”、“?”和“*”(不加数量限定则代表出现一次且仅出现一次)加号代表前面的字符必须至少出现一次。(1次、或多次)。例如“google”可以匹配google、gooogle、goooogle等;?问号代表前面的字符最多只可以出现一次。(0次、或1次)。例如“colou?r”可以匹配color或者colour;*星号代表前面的字符可以不出现也可以出现一次或者多次。(0次、或1次、或多次)。例如“0*42”可以匹配42、042、0042、00042等。匹配圆括号可以用来定义操作符的范围和优先度。例如“gr(a|e)y”等价于“gray|grey”“(grand)?father”匹配father和grandfather。上述这些构造子都可以自由组合因此“H(ae?|ä)ndel”和“H(a|ae|ä)ndel”是相同的。精确的语法可能因不同的工具或程序而异。维基百科词条正则表达式因为还没有更深入的使用就先总结到这里毫无疑问正则表达式是一个很强大的工具。