`
caijingbin0207
  • 浏览: 107045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java将字符串中空格处理成sql中and的模糊查询

阅读更多

                        java将字符串中空格处理成sql中and的模糊查询

 

根据页面输入的name进行模糊查询,前提是去掉前后空格,如果剩下的中间还存在若干空格的话(如:a    B c  D),将中间的空格处理成均只有一个空格的格式(如:a bB c D),并且要中间的每个空格处理成sql中的and语句进行模糊查询同时不区分大小写(如: where 1 = 1 and (name like '%a%' or name like '%A%') and (name like '%b%' or name like '%B%')……)。

 

方法目的返回一个sql语句:

public String disposeString(String name) {
       String sql = "select * from table_name where 1 = 1";
       //当传过来的name不为空时:
       if(name != null && name.length() != 0) {
                String fname = name.trim();  //去掉前后空格
                String str = "";
                //当去掉前后空格的字符串中间还存在未知个数的空格时:将中间所有的空格处理成只剩下一个空格
                if(fname.indexOf(" ") > -1) {
                         for (int i = 0; i < fname.length() - 1; i++) {
                                  if ((int) fname.charAt(i) == 32 && (int) fname.charAt(i + 1) == 32) {
                                           continue;
                                  }
                                  str += fname.charAt(i);
                         }
                         if ((int) fname.charAt(fname.length() - 1) != 32)
                                  str += fname.charAt(fname.length() - 1);
                 } else {
                          str += fname;  //当去掉前后空格的字符串中间没有空格时:
                 }
                 String[] strs = str.split(" ");
                 for(int i = 0;i<strs.length;i++) { 
                          if((!strs[i].equals(""))) {
                                  sql += " and (name like '%"+strs[i].toLowerCase()+"%' or name like '%"+strs[i].toUpperCase()+"%')";
                          }
                 } 
         }
         return sql;
 }

分享到:
评论

相关推荐

    Split-由任意个全角或半角空格分隔开的任意长度的字符串

    在这个场景中,标题提到的是“由任意个全角或半角空格分隔开的任意长度的字符串”,这暗示了我们处理的是包含不同类型的空格(全角空格和半角空格)作为分隔符的情况。 全角空格和半角空格在字符编码上是有区别的。...

    android客户端实现模糊查找

    2. **SQL查询**:如果你的数据存储在SQLite数据库中,可以利用SQL的LIKE语句和通配符实现模糊查找。例如,`SELECT * FROM table WHERE column LIKE '%keyword%'` 将返回所有包含关键词的记录。 3. **正则表达式**:...

    南京各大公司java面试题集锦

    在Java中,处理字符串首尾空格可以使用trim()方法,而处理字符串中连续空格可以使用正则表达式。SQL注入是通过在数据库查询中注入恶意SQL代码片段,以改变原先的SQL结构,进而执行非法操作。防护方法包括使用预处理...

    正则表达式在SQL Server 2000中的实现与应用.pdf

    `LIKE`用于查询中,而`PATINDEX`则可以找到字符串中符合特定模式的位置。例如,`WHERE column LIKE '%text%'`会找到包含'text'的行,而`PATINDEX('%text%', column)`会返回'text'在字符串中的起始位置。 2. **...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例081 去掉字符串中的所有空格 101 实例082 汉字与区位码的转换 102 第5章 面向对象技术应用 103 5.1 Java中类的定义 104 实例083 自定义图书类 104 实例084 温度单位转换工具 105 实例085 域的默认初始化值 106 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...

    Hive函数大全

    LIKE比较用于模糊匹配字符串。 ```sql SELECT * FROM table WHERE column LIKE '%value%'; ``` ##### 10. JAVA的LIKE操作(`RLIKE`) RLIKE操作类似于LIKE,但使用的是Java正则表达式。 ```sql SELECT * FROM ...

    SQL21天自学通

    - 用于模糊匹配字符串的开始部分。 - 示例:`SELECT * FROM employees WHERE name STARTING WITH 'A';` - **ORDER BY子句**: - 对结果进行排序。 - 示例:`SELECT * FROM employees ORDER BY salary DESC;` -...

    2009达内SQL学习笔记

    在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。 SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。 多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后...

    MySQL命令使用.pdf

    - `trim()`:去除字符串首尾的空格。 - `round()`:进行四舍五入,如`round(145.456, 数字)`,第二个参数为保留的小数位数。 - `rand()`:生成随机数,如`rand()*数字`。 - `IFNULL()`:如果字段为空,则替换为...

    阿里巴巴Java开发手册(嵩山版-2020.8).rar

    比如,提倡使用参数绑定而非字符串拼接来构造SQL,避免全表扫描,合理设计数据库表结构和索引,以及正确使用事务隔离级别等。 六、工程规约 工程规约关注项目结构、依赖管理、持续集成等方面。手册推荐使用Maven或...

    s q l 应 用

    `Concatenate`函数用于将两个或多个字符串连接成一个新字符串;`Substring`用于从字符串中提取一个子字符串;`Trim`用于去除字符串两端的空白字符或其他预定义字符。这些函数对于文本数据的处理非常重要。 #### DDL...

    oracle测试试卷

    - **解析:** Java中使用 `Integer.parseInt()` 方法可以将字符串转换为整数。 #### 3. PL/SQL块 - **答案:** ```sql DECLARE total NUMBER := 0; BEGIN FOR i IN 1..10 LOOP total := total + i; END LOOP;...

    2021-2022计算机二级等级考试试题及答案No.230.docx

    6. Java程序中的`main`方法的参数`args[]`是字符串数组,表示命令行参数。`args.length`表示参数数量,`args[1].length()`表示第二个参数的长度。因此,输入"aaa bb c"时,输出为3 2。 7. 公式自动填充是电子表格...

    2022届车三百的笔试题,关于车辆名映射问题

    在实际操作中,可以使用Python的Pandas库进行数据清洗和处理,利用其强大的数据操作功能,如`str.replace()`、`str.lower()`等方法进行字符串转换。此外,还可以使用SQL进行数据库查询和更新。 综上所述,车辆名...

    2021-2022计算机二级等级考试试题及答案No.12341.docx

    8. 字符串类型操作:在Python中,len()函数用于计算字符串的长度,而不是str.len()。其他选项描述正确。 9. Access2003数据操作:在Access中,"记录"菜单主要用于数据的筛选,而不是查找、定位或追加。 10. WWW...

    JAVA基础面试题

    ### JAVA基础面试题详解 ...5. **CHAR与VARCHAR2的区别**:`CHAR`固定长度字符串类型,如果插入的数据长度小于定义的长度,会在末尾填充空格;`VARCHAR2`则为可变长度字符串类型,节省存储空间,更灵活。

Global site tag (gtag.js) - Google Analytics