各位老师,我是一个初学者 我现在遇到一个难题希望各位指点
  请问用JAVA怎么进行模糊查询 都有几种方法;

解决方案 »

  1.   

    不明百你是问的什么??..   是数据库模糊查询吗?  用 like "%"
      

  2.   

    sql语句吗?用like
    %是未知个数的字符。
      

  3.   

    意思是:比如有三个字符串:s1="abc";s2="ba";s3="cc";如果我输入c的话能够把s1和s3值都给打印出来。这个怎么实现?
      

  4.   

    不是用SQL语句查,我现在还没学到那呢,用基础的java语句怎么做模糊查询?
      

  5.   

    contains
    public boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true。 参数:
    s - 要搜索的序列 
    返回:
    如果此字符串包含 s,则返回 true,否则返回 false 
    抛出: 
    NullPointerException - 如果 s 为 null
    从以下版本开始: 
    1.5 String里有很多方法可以判断出字符串里是否包含指定内容,如果包含,就打印出来就可以了吧
      

  6.   

    不太理解LZ的意思,你是不是想判断一个字符串中是否包含某些字符啊?
    如果是的话:
    --------------------------------------------------------public class Test {    /**
         * 比较字符串,字符串str中是否包含s字符串
         * 
         * @param str
         * @param s
         * @return
         * 
         * @author kakukyowu
         */
        public static boolean getString(String str, String s) {        return str.matches(".*" + s + ".*");
        }    /**
         * main函数
         * 
         * @param args
         * 
         * @author kakukyowu
         */
        public static void main(String[] args) {        String str = "testtesttest5566testtest";        // 测试一
            String s1 = "556";
            boolean b1 = getString(str, s1);        // 测试二
            String s2 = "abc";
            boolean b2 = getString(str, s2);        System.out.println("测试一: " + (b1 ? "包含" : "不包含"));
            System.out.println("测试二: " + (b2 ? "包含" : "不包含"));    }
    }
      

  7.   

    import java.io.*;
    public class FindJavaFile { public static void main(String[] args) {
    File file = new File("D:\\workspace");
    find(file);
    }

    //查找所有的java文件
    public static void find(File f){
    FileFilter ff = new MyFileFilter();
    File[] fs = f.listFiles(ff);

    for(int i=0; i<fs.length; i++){
    if(fs[i].isDirectory()){
    //递归
    find(fs[i]);
    }else{
    System.out.println(fs[i].getAbsolutePath());
    }
    }
    }
    }class MyFileFilter implements FileFilter{
    public boolean accept(File file) {
    if(file.getAbsolutePath().endsWith(".java") || file.isDirectory())
    return true;
    else
    return false;
    }
    }这例子你看看吧,可以查找D:\\workspace目录下的以java结尾的文件。
      

  8.   

    sql 例如::    select * from table as t where t.column like '%模糊关键字%';
      

  9.   


    if(s1.indexOf("c")!=-1)
       do your things如果要更复杂的  那就用正则表达市
      

  10.   

    这样 我没表达好我要说的意思,我再举个例子:有一个字符串数组String[] s = {"abc","bc","dd"}; 我从键盘输入c,怎么才能打印出含有c的数组元素呢 ?
      

  11.   

    模糊查询多用于正则表达式中对于你的问题 可以使用String的maches方法进行匹配
             String s1 = "abc";
    String s2 = "ba";
    String s3 = "cc";

    String[] strArray = {s1,s2,s3};
    for(String k: strArray){
    if(k.matches("[\\w]+c")){
    System.out.println(k);
    }
    }
    这个就可以实现
      

  12.   


    public class Test {    private static String[] s = { "abcd", "bcd", "ddff" };    /**
         * 从arrays中找出含有inputStr的字符串,放入list中返回
         * 
         * @param arrays
         * @param inputStr
         * @return
         * 
         * @author kakukyowu
         */
        private static List<String> getResult(String[] arrays, String inputStr) {        List<String> list = new ArrayList<String>();        for (String s : arrays) {
                if (s.matches(".*" + inputStr + ".*")) {
                    list.add(s);
                }
            }        return list;
        }    /**
         * main函数
         * 
         * @param args
         * 
         * @author kakukyowu
         */
        public static void main(String[] args) {        System.out.println("请输入查询内容:");
            Scanner sc = new Scanner(System.in);
            String inputStr = sc.nextLine();        List<String> list = getResult(s, inputStr);        System.out.println("" + '\n' + "查询结果:");        if (list.isEmpty()) {
                System.out.println("没有查询到相应的结果!");
            } else {
                for (String s : list) {
                    System.out.println(s);
                }
            }
        }
    }
      

  13.   

    楼主的表达能力实在是太好了,不知道你讲的是什么!是字符串的查找么?要是字符串的查找就用正则表达式,要是数据库的话看一下SQL Like语句就行了
      

  14.   


    public void stringTest(String str){
    String[] s = {"abc","bc","dd"};
    for(String ss : s){
    if(ss.indexOf(str) != -1)
    System.out.println(ss);
    }
    }
      

  15.   

    恩 用String的maches方法 很好 出来了 但是请15楼的老师讲讲 (".*" + inputStr + ".*")这个正则表达式是什么意思?
    我也用到了这个方法但是没有打印出来结果,我看了下 我用的正则表达式和您的不一样 我用的是:(""+inputStr+"")这种样式;还请指点一下 
      

  16.   

    package Test;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TestString { public static void main(String[] args) throws IOException{
    BufferedReader buffer;
    String str;
    buffer = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Please input:");
    str = buffer.readLine();

    String[] s = {"abc","bc","dd"}; 

    for(int i=0;i<s.length;i++){
    Pattern p = Pattern.compile(str);
    Matcher m = p.matcher(s[i]);
    if(m.find()==true){
    System.out.println(s[i]);
    }
    }
    }
    }哎,java还在学习ing 就想到这个了。望高手指教.
      

  17.   

    以学生表student为例,表中有一个列名为stu_name
    select * from student where stu_name like %str%;
      

  18.   


    select * from 表明 where 列明 like %要找的内容%
      

  19.   


    例如:
    String str1 = "abc5566defg";
    String str2 = "5566";
    如果你想要知道str1中是否包含5566,那么就可以用
    boolean b = "abc5566defg".matches(".*5566.*"); 
    结果为: true ==》包含
    结果为: false ==》不包含
    .*代表任意字符的意思,就好比sql中的%