1,java分词

package com.bobo.util;

import ICTCLAS.I3S.AC.ICTCLAS50;

public class Cutwords {
public static String Segment(String microblog) {
String textSeg = "";
try {
ICTCLAS50 testICTCLAS50 = new ICTCLAS50();
String argu = ".";
testICTCLAS50.ICTCLAS_Init(argu.getBytes("GB2312")); String sInput = microblog; byte nativeBytes[] = testICTCLAS50.ICTCLAS_ParagraphProcess(
sInput.getBytes("GB2312"), 0, 0);
String nativeStr = new String(nativeBytes, 0, nativeBytes.length,
"GB2312"); textSeg = nativeStr; } catch (Exception ex) { }
return textSeg;
}
}

CutWords

2,java文件读写

package com.bobo.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List; public class FileUtil { public static ArrayList<String> FileList = new ArrayList<String>(); /**
* 列出某個目錄及其子目錄下所有的文件列表
*
* @param filepath
* 目錄路徑
* @return 該路徑及其子路經下的所有文件名列表
* @throws FileNotFoundException
* @throws IOException
*/
public static List<String> readDirs(String filepath)
throws FileNotFoundException, IOException {
try {
File file = new File(filepath);
if (!file.isDirectory()) {
System.out.println("输入的不是目錄名称;");
System.out.println("filepath:" + file.getAbsolutePath());
} else {
String[] flist = file.list();
for (int i = 0; i < flist.length; i++) {
File newfile = new File(filepath + "/" + flist[i]);
if (!newfile.isDirectory()) {
FileList.add(newfile.getAbsolutePath());
} else if (newfile.isDirectory()) {
readDirs(filepath + "/" + flist[i]);
}
}
}
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
return FileList;
} /**
* 讀取文件內容,以字符串的方式返回
*
* @param file
* 需要讀取的文件名
* @return 返回讀取的文件內容構成的字符串,行之間用\r\n進行分割
* @throws FileNotFoundException
* @throws IOException
*/
public static String readFile(String file) throws FileNotFoundException,
IOException {
StringBuffer strSb = new StringBuffer(); // String is constant,
// StringBuffer can be
// changed.
InputStreamReader inStrR = new InputStreamReader(new FileInputStream(
file), "gbk"); // byte streams to character streams
BufferedReader br = new BufferedReader(inStrR);
String line = br.readLine();
while (line != null) {
strSb.append(line).append("\r\n");
line = br.readLine();
} return strSb.toString();
}
// 其他,一般读取文件的时候,利用bufferedReader方便,逐行写入文件的时候利用printStream比较方便 }

FileUtil

3,字符串工具类

package com.bobo.util;

import java.util.Stack;
import java.util.regex.Pattern; public class StringUtil {
/**
* 查找左右匹配型符号的位置
*
* @param str
* 需要查找的字符串
* @param cLeft
* 左侧符号
* @param cRight
* 右侧符号
* @return 返回和第一个左侧符号匹配的右侧符号位置,否则返回-1
*/ public static int findRightMatchChar(String str, String cLeft, String cRight) {
Stack<Integer> stack = new Stack<Integer>();
boolean pushAtLeastOnce = false;
for (int i = 0; i < str.length(); i++) { if (str.substring(i, i + 1).equals(cLeft)) {
stack.push(i);
pushAtLeastOnce = true;
}
if (str.substring(i, i + 1).equals(cRight)) {
stack.pop();
} if (pushAtLeastOnce && stack.isEmpty()) {
return i;
}
}
return -1;
} /**
* 判断是否为null或空�?
*
* @param str
* String
* @return true or false
*/
public static boolean isNullOrEmpty(String str) {
return str == null || str.trim().length() == 0;
} /**
* 判断str1和str2是否相同
*
* @param str1
* str1
* @param str2
* str2
* @return true or false
*/
public static boolean equals(String str1, String str2) {
return str1 == str2 || str1 != null && str1.equals(str2);
} /**
* 判断str1和str2是否相同(不区分大小写)
*
* @param str1
* str1
* @param str2
* str2
* @return true or false
*/
public static boolean equalsIgnoreCase(String str1, String str2) {
return str1 != null && str1.equalsIgnoreCase(str2);
} /**
* 判断字符串str1是否包含字符串str2
*
* @param str1
* 源字符串
* @param str2
* 指定字符�?
* @return true源字符串包含指定字符串,false源字符串不包含指定字符串
*/
public static boolean contains(String str1, String str2) {
return str1 != null && str1.contains(str2);
} /**
* 判断字符串是否为空,为空则返回一个空值,不为空则返回原字符串
*
* @param str
* 待判断字符串
* @return 判断后的字符�?
*/
public static String getString(String str) {
return str == null ? "" : str;
}
/**
* 判断字符串是否为数字
* @param str
* @return
*/
public static boolean isNumeric(Object str) {
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str.toString()).matches();
}
/**
* 判断字符串是否为英文字母
* @param str
* @return
*/
public static boolean isEnglish(Object str) {
Pattern pattern = Pattern.compile("[a-z]*");
return pattern.matcher(str.toString()).matches(); }
}

StringUtil

4,在java中运行shell命令的相关工具类

package com.bobo.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class CommandHelper {
// default time out, in millseconds
public static int DEFAULT_TIMEOUT;
public static final int DEFAULT_INTERVAL = 1000;
public static long START; public static void main(String[] args) {
DEFAULT_TIMEOUT = 10000;
try {
System.out
.println(new CommandHelper().exec("wc -l *.*").toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static CommandResult exec(String command) throws IOException,
InterruptedException {
Process process = Runtime.getRuntime().exec(command);
CommandResult commandResult = wait(process);
if (process != null) {
process.destroy();
}
return commandResult;
} private static boolean isOverTime() {
return System.currentTimeMillis() - START >= DEFAULT_TIMEOUT;
} private static CommandResult wait(Process process)
throws InterruptedException, IOException {
BufferedReader errorStreamReader = null;
BufferedReader inputStreamReader = null;
try {
errorStreamReader = new BufferedReader(new InputStreamReader(
process.getErrorStream()));
inputStreamReader = new BufferedReader(new InputStreamReader(
process.getInputStream())); // timeout control
START = System.currentTimeMillis();
boolean isFinished = false; for (;;) {
if (isOverTime()) {
CommandResult result = new CommandResult();
result.setExitValue(CommandResult.EXIT_VALUE_TIMEOUT);
result.setOutput("Command process timeout");
return result;
} if (isFinished) {
CommandResult result = new CommandResult();
result.setExitValue(process.waitFor()); // parse error info
if (errorStreamReader.ready()) {
StringBuilder buffer = new StringBuilder();
String line;
while ((line = errorStreamReader.readLine()) != null) {
buffer.append(line);
}
result.setError(buffer.toString());
} // parse info
if (inputStreamReader.ready()) {
StringBuilder buffer = new StringBuilder();
String line;
while ((line = inputStreamReader.readLine()) != null) {
buffer.append(line);
}
result.setOutput(buffer.toString());
}
return result;
} try {
isFinished = true;
process.exitValue();
} catch (IllegalThreadStateException e) {
// process hasn't finished yet
isFinished = false;
Thread.sleep(DEFAULT_INTERVAL);
}
} } finally {
if (errorStreamReader != null) {
try {
errorStreamReader.close();
} catch (IOException e) {
}
} if (inputStreamReader != null) {
try {
inputStreamReader.close();
} catch (IOException e) {
}
}
}
}
}

CommandHelper

package com.bobo.util;

public class CommandResult {
public static final int EXIT_VALUE_TIMEOUT = -1; private String output; void setOutput(String error) {
output = error;
} public String getOutput() {
return output;
} int exitValue; void setExitValue(int value) {
exitValue = value;
} int getExitValue() {
return exitValue;
} private String error; /**
* @return the error
*/
public String getError() {
return error;
} /**
* @param error
* the error to set
*/
public void setError(String error) {
this.error = error;
} @Override
public String toString() { return "output:" + this.output + ";error:" + this.error + ";exitValue:"
+ this.exitValue;
}
}

CommandResult

5,过滤某个目录下以特定后缀结尾的文件

package com.bobo.myinterface;

import java.io.File;
import java.io.FileFilter; public class MyFileFilter implements FileFilter {
private String suffix; public MyFileFilter(String suffix) {
this.suffix = suffix;
} @Override
public boolean accept(File arg0) {
if (arg0.isDirectory() || arg0.getAbsolutePath().endsWith(this.suffix)) {
return true;
} else {
return false;
}
} }

文件过滤器

在fileUtil中添加showAllFile方法

    public static void showAllFiles(File dir,FileFilter filter,ArrayList<File> fileList) {
File[] fs = dir.listFiles(filter);
for (int i = ; i < fs.length; i++) {
if (fs[i].isDirectory()) {
showAllFiles(fs[i],filter,fileList);
}else{
System.out.println(fs[i].getAbsolutePath());
fileList.add(fs[i]);
}
} }

showAllFile方法

最终调用

    File dataDir = new File(Constants.DataDir);
// 得到所有标注过的数据
ArrayList<File> fileList = new ArrayList<File>();
FileUtil.showAllFiles(dataDir, new MyFileFilter(".dealed"), fileList);
System.out.println(fileList.size());

列举特定后缀文件的调用方法

java在文本处理中的相关辅助工具类的更多相关文章

  1. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...

  2. Java.util.Math类--数学相关的工具类

    Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double ...

  3. java中重要的多线程工具类

    前言 之前学多线程的时候没有学习线程的同步工具类(辅助类).ps:当时觉得暂时用不上,认为是挺高深的知识点就没去管了.. 在前几天,朋友发了一篇比较好的Semaphore文章过来,然后在浏览博客的时候 ...

  4. Java匹马行天下之JavaSE核心技术——工具类

    Java匹马行天之JavaSE核心技术——工具类 一.Object类 java.lang.ObjectObject类是所有类直接或间接的父类 常用的方法: toString():以字符串形式返回对象的 ...

  5. 类型转换辅助工具类TypeCaseHelper

    package org.sakaiproject.util; import java.math.BigDecimal; import java.sql.Date; import java.sql.Ti ...

  6. Java并发(十五):并发工具类——信号量Semaphore

    先做总结: 1.Semaphore是什么? Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源. 把它比作是控制流量的红绿灯,比如XX马路要 ...

  7. Java并发(十四):并发工具类——CountDownLatch

    先做总结: 1.CountDownLatch 是什么? CountDownLatch 允许一个或多个线程等待其他线程(不一定是线程,某个操作)完成之后再执行. CountDownLatch的构造函数接 ...

  8. Java并发编程系列-(2) 线程的并发工具类

    2.线程的并发工具类 2.1 Fork-Join JDK 7中引入了fork-join框架,专门来解决计算密集型的任务.可以将一个大任务,拆分成若干个小任务,如下图所示: Fork-Join框架利用了 ...

  9. URL相关的工具类

    package com.opslab.util.web; import com.opslab.util.CharUtil;import com.opslab.util.CharsetUtil;impo ...

随机推荐

  1. 记一次有趣的JsonFormat不生效问题

    dto中使用了JsonFormat注解,如图 然后再序列化时 objectMapper.writeValueAsString(printReceBillVO) 始终值是一个Long,最后发现是包引用错 ...

  2. 用了 10 多年的 Tomcat 居然有bug !

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 为了解决分布式链路追踪的问题,我们引入了实现OpenTracing的Jaeger来实现.然后我们为SpringBoot框架写 ...

  3. Luogu P2168 [NOI2015]荷马史诗

    题目 哈夫曼树的每个叶子结点都有一个权值(表示某数据的出现频率),且\(\sum dis_ival_i\)最小. 哈夫曼树中,权值和越大的集合离根节点越近. 而每个数据对应从根节点到该叶子结点的一种编 ...

  4. win10上安装redis

    1.下载安装包: 下载地址: 链接:https://pan.baidu.com/s/1oGPrfQJvFz-fX_KNcTTNUw 提取码:eake 2.在适合的位置创建一个文件夹,并将下载到的压缩包 ...

  5. 小白学Python——用 百度AI 实现 OCR 文字识别

    百度AI功能还是很强大的,百度AI开放平台真的是测试接口的天堂,免费接口很多,当然有量的限制,但个人使用是完全够用的,什么人脸识别.MQTT服务器.语音识别等等,应有尽有. 看看OCR识别免费的量 快 ...

  6. hdu1263 简单模拟

    题意:依据水果销量表.依照特定格式输出 格式:首先按产地排序,然后同一产地按水果名排序 注意:第一,设计多级排序           第二.同一产地同一水果可能多次出现,所以须要在前面已经输入的水果里 ...

  7. 配置ssh免密码登录设置后还是提示需要输入密码

    工作之余搭建了一个集群测试,配置了ssh免密码登录以后  ,所有的ssh-copy-id 密钥也都分发了 ,各项配置也没有问题,但是使用ssh进行免密登录时,没有报错,但是要输入被ssh主机的登录密码 ...

  8. 在XCode中使用XCTest

    测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编 ...

  9. NSString用法,object-C数组以及字符串拼接和分割

    一.介绍使用NSString创建一个字符串的代码如下: #import <Foundation/Foundation.h>int main (int argc, char *argv[]) ...

  10. Zabbix--06主动模式和被动模式、低级自动发现、性能优化、

    目录 一. Zabbix主动模式和被动模式 1.克隆模版 2.修改克隆后的模版为主动模式 3.修改监控主机关联的模版为主动模式 4.修改客户端配置文件并重启 5.查看最新数据 二.Zabbix低级自动 ...