当前位置: 首页 > 编程日记 > 正文

课堂练习(续)

源程序:

Text_2.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class Text_2 {
static int N=5;public static String StatList(String str) {StringBuffer sb = new StringBuffer();HashMap<String ,Integer> has = new HashMap<String ,Integer> (); // 打开一个哈希表String[] slist = str.split("[^a-zA-Z\']+");for (int i = 0; i < slist.length; i++) {if (!has.containsKey(slist[i])) { has.put(slist[i], 1);} else {has.put(slist[i],has.get(slist[i])+1 );}}Iterator<String> iterator = has.keySet().iterator();String a[]=new String[100];int s[]=new int[100];int judge;int n;Scanner in=new Scanner(System.in);System.out.println("输入前n个最常出现的单词:");n=in.nextInt();for(int i=0;i<n;i++){iterator = has.keySet().iterator();while(iterator.hasNext()){String word = (String) iterator.next();if(s[i]<has.get(word)){s[i]=has.get(word);a[i]=word;}}judge=woor(a[i]);if(judge==1){n++;has.remove(a[i]);}else{sb.append("单词:").append(a[i]).append(" 次数").append(has.get(a[i])).append("\r\n");has.remove(a[i]);}}return sb.toString();}public static void main(String[] args) {display();// TODO Auto-generated method stub
//        ArrayList<String> fil=getFiles("a");//目录下的文件
//        ArrayList<String> fil=getDirectory(file);//目录下的文件和子目录里的文件
//        for(int i=0;i<fil.size();i++)
//        {
//        String filePath = fil.get(i);
//        String sz=writeFromFile.readTxtFile(filePath);
//        zimu(filePath);
//        String ltxt=null;
//        System.out.println(ltxt=StatList(sz)); 
//        try {
//        writeFromFile.daochu(ltxt);
//        } catch (IOException e) {
//        // TODO Auto-generated catch block
//        e.printStackTrace();
//        }
//        }
    }public static int woor(String a){int n=0;File ctoFile = new File("stopword.txt");InputStreamReader rdCto;try {rdCto = new InputStreamReader(new FileInputStream(ctoFile));BufferedReader bfReader = new BufferedReader(rdCto);String txtline = null;try {while ((txtline = bfReader.readLine()) != null) {if(txtline.equals(a)){n=1;}}bfReader.close();} catch (IOException e) {// TODO Auto-generated catch block
                e.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch block
            e.printStackTrace();}//        int n=0;
//        String[] biao= {"a","the","an","it","and","this","I","t","s"};
//        for(int i=0;i<biao.length;i++)
//        {
//            if(biao[i].equals(a))
//            {
//                n=1;
//            }
//        }return n;}public static ArrayList<String> getFiles(String path) {ArrayList<String> files = new ArrayList<String>();File file = new File(path);File[] tempList = file.listFiles();for (int i = 0; i < tempList.length; i++) {if (tempList[i].isFile()) {files.add(tempList[i].toString());}if (tempList[i].isDirectory()) {}}return files;}private static ArrayList<String> getDirectory(File file) {ArrayList<String> files = new ArrayList<String>();ArrayList<String> files1 = new ArrayList<String>();//获取该目录下的文件列表File flist[] = file.listFiles();for (File f : flist) {if (f.isDirectory()) {// 如果f是一个目录files1=getFiles(f.getAbsolutePath());files.addAll(files1);getDirectory(f);} else {//如果f是一个文件
                files.add(f.getAbsolutePath());}}return files;}public static void zimu(String path){try {//IO操作读取文件内容FileReader fr = new FileReader(path);BufferedReader br = new BufferedReader(fr);DecimalFormat df = new DecimalFormat("#.00");HashMap<String, Integer> map = new HashMap<String, Integer>();String string =null;Integer count = 0;//每个字母的次数Integer total = 0;//总共多少个字母try {while ((string=br.readLine())!=null) {char[] ch = string.toCharArray();for (int i = 0; i < ch.length; i++) {if (ch[i] > 'A' && ch[i]< 'z') {total++;ch[i] = Character.toLowerCase(ch[i]);count = map.get(ch[i]+"");if (count == null) {count = 1;}else {count++;}map.put(ch[i]+"", count);}}}} catch (IOException e) {// TODO Auto-generated catch block
                e.printStackTrace();}ArrayList<String> list = new ArrayList<String>();list.addAll(map.keySet());  //将单词添加到list中NumberFormat numberFormat = NumberFormat.getInstance();// 设置精确到小数点后2位
     numberFormat.setMaximumFractionDigits(2);//排序按照出现次数降序排列for(int i = 0;i < list.size();i++){for(int j = 0;j < (list.size() - i-1);j++)     //list.size() - i-1因为要用到i+1要考虑是否超出范围的问题
                 {if(map.get(list.get(j)) < map.get(list.get(j+1))){String t = list.get(j);list.set(j, list.get(j+1));list.set( j+1, t);}}}for(int i = 0 ; i < list.size();i++){System.out.println(list.get(i) + ":" + map.get(list.get(i)) +"   "+ df.format(((float)map.get(list.get(i)))*100/total) + "%");}} catch (FileNotFoundException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}public static String StatList1(String str) {StringBuffer sb = new StringBuffer();HashMap<String ,Integer> has = new HashMap<String ,Integer> (); // 打开一个哈希表String[] slist = str.split("[^a-zA-Z\']+");for (int i = 0; i < slist.length; i++) {if (!has.containsKey(slist[i])) { has.put(slist[i], 1);} else {has.put(slist[i],has.get(slist[i])+1 );}}Iterator<String> iterator = has.keySet().iterator();String a[]=new String[100];int s[]=new int[100];int judge;int n=20;for(int i=0;i<n;i++){iterator = has.keySet().iterator();while(iterator.hasNext()){String word = (String) iterator.next();if(s[i]<has.get(word)){s[i]=has.get(word);a[i]=word;}}judge=woor(a[i]);if(judge==1){n++;has.remove(a[i]);}else{sb.append("单词:").append(a[i]).append(" 次数").append(has.get(a[i])).append("\r\n");has.remove(a[i]);}}return sb.toString();}public static String StatList2(String str) {StringBuffer sb = new StringBuffer();HashMap<String ,Integer> has = new HashMap<String ,Integer> (); // 打开一个哈希表String[] slist = str.split("[^a-zA-Z\']+");for (int i = 0; i < slist.length; i++) {if (!has.containsKey(slist[i])) { has.put(slist[i], 1);} else {has.put(slist[i],has.get(slist[i])+1 );}}Iterator<String> iterator = has.keySet().iterator();String a[]=new String[2000];int s[]=new int[2000];int judge;int n=1000;String duanyu="";for(int i=0;i<n;i++){iterator = has.keySet().iterator();while(iterator.hasNext()){String word = (String) iterator.next();if(s[i]<has.get(word)){s[i]=has.get(word);a[i]=word;}}judge=woor(a[i]);if(judge==1){n++;has.remove(a[i]);System.out.println(duanyu);duanyu="";}else{duanyu=duanyu+" "+a[i];has.remove(a[i]);}}return sb.toString();}public static void display(){File file = new File("a");int n=0;Scanner in=new Scanner(System.in);while(n!=5){System.out.println("请选择命令");System.out.println("5退出");System.out.println("1字母");System.out.println("2单词");System.out.println("3前n个单词");System.out.println("4短语");n=in.nextInt();if(n==1){zimu("a.txt");}if(n==2){String sz=writeFromFile.readTxtFile("a.txt");String ltxt=null;System.out.println(ltxt=StatList1(sz)); try {writeFromFile.daochu(ltxt);} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}if(n==3){String sz=writeFromFile.readTxtFile("a.txt");String ltxt=null;System.out.println(ltxt=StatList(sz)); try {writeFromFile.daochu(ltxt);} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}if(n==4){String sz=writeFromFile.readTxtFile("a.txt");String ltxt=null;System.out.println(ltxt=StatList2(sz)); try {writeFromFile.daochu(ltxt);} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}}}}

writeFromFile.java

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; 
//import java.io.Reader; 
//从文本文档中读入
public class writeFromFile {public static String readTxtFile(String filePath){ try { String encoding="GBK"; File file=new File(filePath); if(file.isFile() && file.exists()){ //判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file),encoding);//考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null;String lineText="";while((lineTxt = bufferedReader.readLine()) != null){ lineText+=(lineTxt); } read.close(); return lineText;}else{ System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return null;} public static void daochu(String a) throws IOException{File file=new File("b.txt");FileOutputStream fos=new FileOutputStream(file);OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");osw.append(a);osw.close();fos.close();}
}

实验截图:

实验总结:

这次的实验在上次的基础上,要把上次的功能写成函数,分别进行调用,因为上次的实验我已经将功能写成函数,所以在这次的实验中写了一个界面,对函数进行了分别调用

转载于:https://www.cnblogs.com/liujinxin123/p/10871779.html

相关文章:

任务二:1、选择器 2、连接集中状态的顺序 3、浮动的用发和原理 4、盒模型在IE和Google等不同浏览器的区别与联系...

1、选择器类型 标签选择器&#xff0c;类选择器&#xff0c;ID选择器&#xff0c;组合选择器&#xff0c;伪类和伪元素&#xff0c;属性选择器&#xff0c;子选择器&#xff0c;同胞选择器&#xff0c; :not()选择器 1、同胞选择器 相邻同胞标签&#xff1a; h2 p{ color:red…

struct发送与显示中文

中文的编码显示常常是一个让人头痛的问题&#xff0c;网络传输的时候中文也会变成二进制的流&#xff0c;接收方显示就成了一个大问题。 今天使用python的struct模块来对数据封包解包&#xff0c;同样有这个问题。解决方法是&#xff1a;一般会把python代码文件声明为utf-8编码…

mysql5.7.22密码设置_mysql5.7.22版本修改root密码

mysql5.6之前修改密码(字段password)mysql> use mysql;mysql> update user set passwordpassword(‘123‘) where user‘root‘ and host‘localhost‘;mysql> flush privileges;mysql 5.7.22版本修改密码(字段是authentication_string)mysql> use mysql;mysql>…

配置 php-fpm 监听的socket

一般现在我们配置的PHP的web环境&#xff0c;如LNMP&#xff08;linuxNginxMysqlPHP&#xff09;, 这里linux可能是centos, ubuntu..., 数据库可能是mysql, postgresql, sql server等。。 在服务器上安装PHP-FPM&#xff0c; nginx后&#xff0c; 我们要配置Nginx的http模块&am…

laravel基础课程---8、laravel响应和视图(响应是什么)

laravel基础课程---8、laravel响应和视图&#xff08;响应是什么&#xff09; 一、总结 一句话总结&#xff1a; 就是向请求返回的响应数据&#xff08;一般为html&#xff08;视图&#xff09;&#xff0c;当然也可以是变量值&#xff09;&#xff1a;所有的路由及控制器必须返…

ios应用内购买

参考&#xff1a; 1、http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ 2、http://iosdeveloper.diandian.com/post/2011-08-26/4366441转载于:https://www.cnblogs.com/foxmin/archive/2012/09/08/2676580.html

mysql查询解析过程_MySQL查询执行过程详解

查询是用户通过设置某些查询条件&#xff0c;从表或其他查询中选取全部或者部分数据&#xff0c;以表的形式显示数据供用户浏览。查询是一个独立的、功能强大的、具有计算功能和条件检索功能的数据库对象。MySQL数据库中&#xff0c;MySQL查询同样是数据库的核心操作&#xff0…

.net erp(办公oa)开发平台架构之流程服务概要介绍

背景 搭建一个适合公司erp业务的开发平台。 架构概要图&#xff1a; 流程引擎开发平台&#xff1a; 包含流程引擎设计器&#xff0c;流程管理平台&#xff0c;流程引擎服务。目前只使用单个数据库进行管理。 流程引擎设计器 采用silverlight进行开发&#xff0c;本质是对流程…

数据分析-pca协方差

协方差是反映的变量之间的二阶统计特性&#xff0c;如果随机向量的不同分量之间的相关性很小&#xff0c;则所得的协方差矩阵几乎是一个对角矩阵。转载于:https://www.cnblogs.com/erweiyang/archive/2012/09/08/2676997.html

在javascript中判断类型

String 一个字符串始终是一个字符串&#xff0c;所以这一块是很容易。除非使用new&#xff08;new String&#xff09;调用&#xff0c;否则typeof将返回“object”。所以也要包含那些可以使用的字符串instanceof。 // Returns if a value is a string function isString (valu…

mysql中日期判断的函数_MySql判断汉字、日期、数字的函数

几个平常用的mysql函数 /***************************************************** 1.判断字符串是否为汉字 返回值&#xff1a;1-汉字 0-非汉字 *****************************************************/ DROP FUNCTION IF EXISTS fc_is_hanzi; CREATE FUNCTION fc_is_h几个平常…

c#.net调用pdf2swf.exe将pdf文件转换为swf,vs中运行正常,布署IIS服务器部署转换后文字部分为空白...

这个是权限问题&#xff0c; 需要在应用程序池中高级设置&#xff0c;将标识改为LocalSystem 转载于:https://www.cnblogs.com/shy1766IT/p/5114971.html

云计算开发要学习哪些东西?云计算开发的内容

云计算是一种基于互联网的计算方式&#xff0c;要实现云计算则需要一整套的技术架构去实施&#xff0c;包括网络、服务器、存储、虚拟化等等。 云计算目前分为公有云和私有云。两者的区别只是提供的服务的对象不同&#xff0c;一个是企业内部使用&#xff0c;一个则是面向公众。…

XHTML+CSS3(Chapter 1)

HTML5 Reference document: http://www.w3school.com.cn/html5/html_5_intro.asp 1. Use <video> to display some video in html (mp4. ogg.) <video src"movie.ogg" controls"controls"> </video> 2. Use <audio> to play …

oracle重建实例_记一次误删Oracle控制文件并恢复过程

概述当你在数据库运行时误删除了控制文件怎么办&#xff1f;很不幸有一次我就有这个情况,虽然是测试环境&#xff0c;这里因为我有事先把控制文件分别备份&#xff0c;所以恢复还是比较简单的。下面简单记录下怎么恢复。问题控制文件版本不一致一般是因为在实例运行时删除了控制…

成都Uber优步司机奖励政策(1月9日)

1月9日 奖励政策滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.c…

vim-map

vim-map 软件版本&#xff1a;  ubuntu10.04  Linux version 2.6.32-42-generic  VIM - Vi IMproved 7.2目录&#xff1a; 1. 简介  2. 映射与运行模式的关系  3. 例子  4. 其他 1. 简介 如果想让 vim 成为你手中的利器&#xff0c;vim 的 map 功能就不得不学&…

Java并发面试,幸亏有点道行,不然又被忽悠了

2019独角兽企业重金招聘Python工程师标准>>> 前言 面试Java&#xff0c;必然要被问Java内存模型和Java并发开发。我被问到的时候&#xff0c;心里慌得一批&#xff0c;“额&#xff0c;是在《Thinking in Java》里面写的吗&#xff1f;果然每天增删改太low了” 要了…

mysql减少锁等待_降低锁竞争 减少MySQL用户等待时间

【IT168 技术】通过锁机制&#xff0c;可以实现多线程同时对某个表进行操作。如下图所示&#xff0c;在某个时刻&#xff0c;用户甲、用户乙、用户丙可能会同时或者先后(前面一个作业还没有完成)对数据表A进行查询或者更新的操作。当某个线程涉及到更新操作时&#xff0c;就需要…

UML中的六种关系的比较与学习

通过不断的学习并绘制UML图&#xff0c;整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系&#xff0c;总结六大关系来深入学习&#xff0c;主要关系有六种&#xff1a;继承、实现、依赖、关联、聚合、组合。 区别于联系&#xff1a; 1.继承&#xff08;泛华&#x…

spark—3(Spark Scheduler)

2019独角兽企业重金招聘Python工程师标准>>> Spark的核心是根据RDD来实现的&#xff0c;Spark Scheduler则为Spark核心实现的重要一环&#xff0c;其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据&#xff0c;根据RDD的依赖关系构建…

Tomcat手动配置简述【查询留存】

一、设置JAVA的环境变量JAVA_HOME 略 二、设置Tomcat的环境变量 一次性全配置了 Tomcat的根目录&#xff0c;例如【E:\tomcat-6.0.35】 创建下列环境变量&#xff1a; CATALINA_HOME: E:\tomcat-6.0.35 CATALINA_BASE: E:\tomcat-6.0.35 TOMCAT_HOME: E:\tomcat-6.0.35 然后修改…

linux mysql 不稳定_linux,mysql:今天写出一个十分弱智的bug!

今天写出一个十分弱智的bug&#xff0c;记录一下&#xff0c;提醒自己以后别这种犯错&#xff0c;不怕丢人哈~在写一个分页查询记录的sql时&#xff0c;要根据添加的时间逆序分页输出&#xff0c;之前的写法是酱紫&#xff1a;selectrecord.a, y.c from ( selecta,b from xorde…

IOS XML解析

<?xml version "1.0" encoding "utf-8"?> <video>小黄人</video> <video></video> <video/> <videos> <video> </video> </videos> 不能相互嵌套。 xml中的所有空格和空行都会当成字符来…

BAT架构师分享之:大型网站技术架构

早期的网站为了节省成本一般会设计成集中式系统&#xff0c;应用程序、数据库等都部署在一台服务器上。 但随着业务的快速度发展&#xff0c;逐渐出现瓶颈&#xff0c;按一定原则**&#xff08;应用拆分、服务拆分、数据拆分、应用解耦&#xff09;**&#xff0c;向分布式系统转…

mysql isreg_`Innodb` MySQL中如何优雅的删除大表跑路

最近很想写写MySQL相关的内容&#xff0c;就从这个话题出发吧有人说删MySQL表谁不会不就是drop table TABLENAME如果在生产环境中&#xff0c;你对一张TB级别的大表&#xff0c;敲下这行命令那么你的主管&#xff0c;大主管&#xff0c;隔壁的大主管 就会气势汹汹的冲向你其原因…

常用正则表达式集锦

链接地址&#xff1a;http://blog.csdn.net/tjcyjd/article/details/48416405 验证数字&#xff1a;^[0-9]*$验证n位的数字&#xff1a;^\d{n}$验证至少n位数字&#xff1a;^\d{n,}$验证m-n位的数字&#xff1a;^\d{m,n}$验证零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$验…

C(第一个C程序) 和 C++ (第一个C++程序)对比碰撞

个人博客首页&#xff08;点击查看详情&#xff09; -- https://blog.51cto.com/11495268 1、简介 C 是对 C 的继承、扩展&#xff0c;但从语言角度来说&#xff0c;这是 两种变成语言&#xff0c;就一定存在不同&#xff0c;本文 就借助于 C、C 的 最精简标准程序 进行对比…

java的byte与C#的异同引起的字符处理问题。

java的byte是有符号类型(java就没有无符号类型的数据)&#xff0c;值域&#xff1a;-0128~127 c#的byte是无符号类型数值&#xff0c;值域&#xff1a;0~255 这在依赖字符编码处理程序中&#xff0c;两者源代码就不能通用了。 知道原因结局办法就容易多了。 1.使用&与运算 …

exec不同文件l怎么汇总_ABAQUS常见问题汇总 - 2.0版.doc

您所在位置&#xff1a;网站首页 > 海量文档&nbsp>&nbsp计算机&nbsp>&nbspC/C资料ABAQUS常见问题汇总 - 2.0版.doc154页本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性&#xff0c…