这个是去年抽空学习java的时候写的一段程序,功能就是从指定的文本文件中搜索指定的字符串,返回搜索到的每一行和所在位置,最后输出找到次数。
代码如下:
import java.io.*;
public class search
{
public static void main(String[] args) throws IOException
{
FileReaderfr = null;
BufferedReader br = null;
inti= -1;//列号
intli= -1;//字符串在行的最后位置
intline= 1;//行号
Strings = "";//搜索字符串
Stringlinec = "";//当前行内容
inttimes=0;//搜索到的次数
if (args.length < 1)
{
System.out.println("Please put the filepath to read!");
System.exit(0);
}
if (args.length < 2)
{
System.out.println("Please put the char to search!");
System.exit(0);
}
fr= new FileReader(args[0]);
br = new BufferedReader(fr);
s = args[1];
while((linec = br.readLine()) != null)
{
li=linec.lastIndexOf(s);
for(i=-1;i<=li;i=linec.indexOf(s,i+1))
{
if(i>-1)
{
System.out.println("line:"+line+"char:"+i);
System.out.println(""+linec);
times++;
}
if(i==li)
{
break;
}
}
line++;
}
if(times<1)
{
System.out.println("No such string found!"+line);
}
else
{
System.out.println("The String \"" + s + "\" was found " + times + " times");
}
br.close();
fr.close();
}
}
测试方法(windows下,需安装java环境):
//1.将代码保存在一个文本文件里,并保存为search.java
//2.到命令行,找到文件所在目录
//3.输入
javac search.java
//,等待编译完成
//4.随便找一个测试用文本文件,放入同级目录(方便测试),假设为test.txt
//5.输入
java search test.txt 我的
//"我的"为要查找的字符串
//6.程序返回查找结果
另外,本程序没有在编码上做兼容,仅仅是一个简单的测试。