import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 提取汉字
*
* @author ajax_2003
* @version 1.0, 2009-7-23
*
*/
public class ExtractKanji {
public static void main(String[] args) {
String str = "第七/m 章/q 茶树/n 芽/n 叶/n 咀/n 食性/n 害虫/n 咀/n 食/n 茶树/n 芽/n 叶/n 的/u 害虫/n ,"
+ "/w 主要/d 是/v 蛾/n 类/q 幼虫/n ,/w 包括/v 尺蠖/n 、/w 毒蛾/n 、/w 卷/q 类/n 、/w 蓑/n 蛾/n 、"
+ "/w 刺/v 蛾/n 、/w 夜蛾/n 等/u 类/n 及/c 茶/n 蚕/n 、/w 茶叶/n 斑/n 蛾/n 等/u 。"
+ "/w 另/r 一/m 类/q 是/v 象甲/n 、/w 叶/n 甲等/b 甲虫/n ,"
+ "/w 直接/a 蚕食/v 芽/n 梢/n 及/c 成/v 老叶/n 第一/m 节/q 尺蠖蛾/n 类/q 害虫/n 危害/v 茶树/n 的/u "
+ "尺蠖/n 多达/v 40/m 余/m 种/q ,/w 同/p 属/v 鳞翅目/n 尺蠖蛾/n 科/n 。";
String result = getKanji(str);
System.out.println(result);
}
private static String getKanji(String str) {
Pattern pattern = Pattern.compile("[^/\\w]+");
Matcher matcher = pattern.matcher(str);
StringBuilder sb = new StringBuilder();
while (matcher.find()) {
sb.append(matcher.group());
}
return sb.toString();
}
}
正则表达式,在输出到一个文本里
如果标注语言都是 /加一个字母的格式,那么就应该这么写:
import java.io.*;
public class Pan
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("data.txt");
FileWriter fw = new FileWriter("out.txt");
int in = fr.read();
if (in != '/')
{
System.out.print((char)in);
fw.write((char) in);
}
while (in != -1)
{
in = fr.read();
if(in==' ') continue;
if (in == '/')
{
in = fr.read();
continue;
}
System.out.print((char)in);
fw.write((char) in);
}
fr.close();
fw.close();
}
}
如果不是,那么就用Unicode码来判断汉字。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "第七/m 章/q 茶树/n 芽/n 叶/n 咀/n 食性/n 害虫/n 咀/n 食/n 茶树/n 芽/n 叶/n 的/u 害虫/n ,/w 主要/d 是/v 蛾/n 类/q 幼虫/n ,/w 包括/v 尺蠖/n 、/w 毒蛾/n 、/w 卷/q 类/n 、/w 蓑/n 蛾/n 、/w 刺/v 蛾/n 、/w 夜蛾/n 等/u 类/n 及/c 茶/n 蚕/n 、/w 茶叶/n 斑/n 蛾/n 等/u 。/w 另/r 一/m 类/q 是/v 象甲/n 、/w 叶/n 甲等/b 甲虫/n ,/w 直接/a 蚕食/v 芽/n 梢/n 及/c 成/v 老叶/n 第一/m 节/q 尺蠖蛾/n 类/q 害虫/n 危害/v 茶树/n 的/u 尺蠖/n 多达/v 40/m 余/m 种/q ,/w 同/p 属/v 鳞翅目/n 尺蠖蛾/n 科/n";
File file = new File("d:\\aa.txt");
str = str.replaceAll("/\\S", "");
str = str.replaceAll(" +", "");
System.out.println(str);
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file)));
bw.write(str);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
判断每个字符是否大于255就可以了。。