写OO作业过程中现学的东西

获取后缀名——

String latter = name.substring(name.lastIndexOf(".") + 1);
//不包括".",比如"java",而不是".java"

将文件中的内容读入到String数组中——

		BufferedReader br = null;
		try{
			br = new BufferedReader(new FileReader(fileName));
		}catch(Exception e){
			System.out.println("Error! Opening new buffer for file fails!");
		}
		String tmpString = null;							// A good way to read a file and convert to a string
        StringBuffer sb = new StringBuffer();
        try {
			while ((tmpString = br.readLine()) != null) {
			    sb.append(tmpString);						//read the file context into stringbuffer
			    sb.append('\n');							//readLine会忽略行尾的\n,我们手动加上,一会儿作为单词分割的“分割词”
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

将String数组中的文档的内容拆分成只剩下单词,用split。如果用如下第一种,则会出现空串,因为对于“分割词”连续出现这种情况我们的正则没有使用尽量大的匹配,所以可以用第二种。

但是第二种也不能保证完全没有空串,比如一篇文章开头就是一个我们所定义的“分割词”,那么他前面是没有内容的,故也会在开头产生一个空串,所以还是直接便利数组删除空串比较好。

删除的时候,首先根据String数组拷贝一份到ArrayList,然后调用remove(),最后转回String即可。

        String [] words = sb.toString().split(",|\\.|\\?|:|!|\\n|\\t| ");		// result in blank string when appear together
//      String [] test = sb.toString().split("(,|\\.|\\?|:|!|\\n|\\t| )+");		//TODO: won't appear so many blank string
        List<String> l = new ArrayList<String>();		// A good way to delete special element in array
        for(String s : words){
        	l.add(s);
        }
        while(l.contains("")){
        	l.remove("");
        }
        words = l.toArray(new String [l.size()]);		//用l中的元素为内容创建数组,再进行元素复制,但由于返回类型是Object[],所以进行显式转换。

ArrayList有sort方法,可直接传进去一个自定义的Comparator进行排序。

ArrayList<WordInfo> al = CountTxt.hashMap.get(CountTxt.word);
al.sort(new FrequencyComparator());

Timer是一种线程设施,可以安排在后台线程中执行的任务。

(可安排任务执行一次,或者定期重复执行,可以看成一个定时器)

可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。

-->写一个类实现TimerTask抽象类,然后供新建的Timer对象调用。

import java.util.Timer;
import java.util.TimerTask;

public class M {
	public static void main(String[] args) {
		// TODO todo.generated by zoer
		Timer timer = new Timer();
		timer.schedule(new MyTask(), 1000, 2000);
	}
}

class MyTask extends TimerTask {

	@Override
	public void run() {
		System.out.println("dddd");

	}

}
				
时间: 2024-10-12 23:29:46

写OO作业过程中现学的东西的相关文章

有一个demo想开去,程序员在写code的过程中应该想些什么。

学习c#匿名类的时候,写demo,开始只是两句code,后来一些想法逐步在我的脑海中出现,把这些想法写下来,一方面是见证自己的进步,另一方面也与大家分享如何写一个"优雅"的程序.   class Program     {         public delegate void say(object word);           public delegate int Add(int x, int y);         public delegate int Sub(int x

用python写trojan的过程中遇到的各种问题

由于之前已经conn, addr = s.accept() 所以改为  conn.recv spyder无法同时运行client 和 server 分别在spyder和anaconda prompt运行 filename, filesize = struct.unpack('128sl', buf) fn = filename.decode().strip('\00') 写作fn = filename.strip('\00')        会报错  (调了好长时间才发现的.....) 原文地址

往企业家蜕变的过程中该如何拥抱失败 4 - 赌神发哥的创业学

赌神发哥的杀手锏 (天地会珠海分舵注:成功的企业家有如高明的赌徒.高明的赌徒要数我们耳熟能详的赌神高进.本节所描述的成功的企业家应该拥有的3个特质跟赌神高进在<赌神>的表现不谋而合. 赌神2开头描述了赌神高进的妻儿遭到了仇笑痴的迫害而亡,这好比一个企业家在迈向成功时所碰到的失败,碰到的风浪. 导演王晶镜头上描述的赌神高进,特别是步入赌场时穿着风衣慢步行走有如君临天下的赌神高进,显示出的就是一个企业家应该拥有的舍我其谁的自信和能屈能伸的个性. 而在赌神1临结尾处,赌神高进运用美国领先几年的&qu

Quick Cocos 旋转子弹的实现中我学到的

self 在lua中相当于java中的this lua中的任何变量在没有赋值前, 都可以看做是nil lua变量有3种,成员变量: self.变量名 = 局部变量: local 变量名 = 全局变量: 变量名 = 在一个游戏中和逻辑有关的动作最好不用transition 因为不可控且不稳定 物体的移动可以用update的方法实现: 设置一个角色每帧移动的项目距离,比如speed = 5,然后解析几何的方法算出 speedX,和speedY的分量.在update里,local curPos = s

MNIST手写数据集在运行中出现问题解决方案

今天在运行手写数据集的过程中,出现一个问题,代码没有问题,但是运行的时候一直报错,错误如下: urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)> 查询网上的各种博客什么的,最后貌似是因为python3的原因出现的,目前采用的解决方案是在代码的顶端

“玩游戏,我没学到东西”,一定是坏消息?

"玩游戏,没学到任何东西",当这句话出现的时候,似乎很容易让人立刻联想起玩物丧志.当时我在一则新闻中看到此句时,心里更是一沉. 文/张书乐(TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者) 刊载于<人民邮电报>2017年4月7日<乐游记>专栏138期 因为这则新闻是讲述国外一个教育游戏团队的创业历程的.可不是糟糕了吗!可把整个句子一看,乐了."一开始,他们让一班10岁孩子试玩了<宇宙大爆炸传说>.一个女孩反映她在玩游戏的过程中

在写makefile过程中遇到的问题

老师布置了linux实验作业,本身不打算写了,反正也不交实验报告,但刚好项目也需要,所以就研究了makefile.不过还是要批评自己,怎么能这么的颓废呢? 刚开始做的时候出现了这样的错误,代码如下: TARGET=helloworld KDIR=/usr/src/linux-headers-4.4.0-72-generic PWD=$(shell pwd) #modules-objs:= **.o #生成模块名所需要的目标文件 obj-m:=$(TARGET).o default: make -

标准动作中犯的错误,使用过程中忘记写结束符号所发生的错误

例如 错误写法: <jsp:getProperty property="userName" name="user" > 正确写法:<jsp:getProperty property="userName" name="user" /> 导致的异常: HTTP Status 500 - type Exception report message description The server encounte

Django学习笔记(现学现写,实时更新)

说明:我是先上手做一些简单的例子,然后在尝试的过程中理解Django的原理,笔记也是按这个思路来的. 一.Django结构与基本文件介绍 1. django-admin.py 工程管理工具,主要用于创建项目和app等. 例:django-admin.py startproject project_example 会创建一个名为project_example的工程,目录结构如下: |-- project_example|    |--project_example|        |-- __in