码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-20 22:27:46      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:oo   java   

获取后缀名——

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");

	}

}




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

标签:oo   java   

原文地址:http://blog.csdn.net/puppylpg/article/details/45874589

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!