第1个回答 2008-06-07
这是我以前写的查找单词的方法,改了下正则表达式,可以满足你的需求了,你只需要把文件的内容读出来做实参传入到input,把你想要查找的单词开头传给word就可以了
/**
* 用于检索word指定的单词在input这个输入串里边的出现次数
*
* @param input
* @param word
* @return 返回实际出现的次数
*/
public static int findWord(String input, String word) {
int count = 0;
String regExp = "\\s*\\b(" + word + "[a-zA-Z]*)\\b";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("出现位置:" + matcher.start(1) + " "
+ matcher.end(1) + " 实际的单词:" + matcher.group(1));
count++;
}
System.out.println("总共出现:" + count + "次" + word);
return count;
}
第2个回答 2008-06-08
import java.util.Scanner;
import java.util.Formatter;
import java.util.ArrayList;
public class Baidu{
public ArrayList<String> list = new ArrayList<String>();
public void read(){
try{
System.out.println("Please input");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
scanner = new Scanner("a1.txt");
String temp;
while(scanner.hasNext()){
temp = scanner.next();
if (temp.startsWith(input))
list.add(temp);
}
}
catch(Exception e){}
}
public void write(){
try{
Formatter formatter = new Formatter("b.txt");
for (int i = 0; i < list.size(); i ++){
formatter.format(list.get(i));
}
formatter.close();
}
catch(Exception e){}
}
public static void main(String args){
Baidu b = new Baidu();
b.read();
b.write();
}
}本回答被提问者采纳