日期:2014-05-20  浏览次数:20759 次

字符串匹配问题
代码是这样的:
public void display() throws IOException{

System.out.print("Enter keyword:");
Scanner scan = new Scanner(System.in);
String s =scan.nextLine();
//System.out.println(s.toString());

BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream("d:/record.txt")));

  String line = null;
  while((line=in.readLine())!=null){
  if(line.contains(s));
  {System.out.println(line.toString());
  }}
意思是这样:
随便输入一个字符串s,看它是否是字符串line的子字符串,若是,这输出line字符串。line字符串是txt文件里一堆的记录。

------解决方案--------------------
没有看出来有什么问题哦
------解决方案--------------------
可能有些特别字符如 /,.等
------解决方案--------------------
if ( line.contains( s ) )
;

这行多打了分号,低级错误,debug一跟就出来了。
------解决方案--------------------
if(line.contains(s));
后面多了个分号;表示满足if条件的话,什么也不做
于是后面的{System.out.println(line.toString());}就和if脱离了关系,变成无条件输出
所以造成结果不对