Java练习-字符串搜索功能实现
这个是去年抽空学习java的时候写的一段程序,功能就是从指定的文本文件中搜索指定的字符串,返回搜索到的每一行和所在位置,最后输出找到次数。
代码如下:
import java.io.*;
public class search
{
public static void main(String[] args) throws IOException
{
FileReader fr = null;
BufferedReader br = null;
int i = -1; //列号
int li = -1; //字符串在行的最后位置
int line= 1; //行号
String s = ""; //搜索字符串
String linec = ""; //当前行内容
int times=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.程序返回查找结果另外,本程序没有在编码上做兼容,仅仅是一个简单的测试。