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;
}
分享到:
相关推荐
在这个场景中,标题提到的是“由任意个全角或半角空格分隔开的任意长度的字符串”,这暗示了我们处理的是包含不同类型的空格(全角空格和半角空格)作为分隔符的情况。 全角空格和半角空格在字符编码上是有区别的。...
2. **SQL查询**:如果你的数据存储在SQLite数据库中,可以利用SQL的LIKE语句和通配符实现模糊查找。例如,`SELECT * FROM table WHERE column LIKE '%keyword%'` 将返回所有包含关键词的记录。 3. **正则表达式**:...
在Java中,处理字符串首尾空格可以使用trim()方法,而处理字符串中连续空格可以使用正则表达式。SQL注入是通过在数据库查询中注入恶意SQL代码片段,以改变原先的SQL结构,进而执行非法操作。防护方法包括使用预处理...
`LIKE`用于查询中,而`PATINDEX`则可以找到字符串中符合特定模式的位置。例如,`WHERE column LIKE '%text%'`会找到包含'text'的行,而`PATINDEX('%text%', column)`会返回'text'在字符串中的起始位置。 2. **...
实例081 去掉字符串中的所有空格 101 实例082 汉字与区位码的转换 102 第5章 面向对象技术应用 103 5.1 Java中类的定义 104 实例083 自定义图书类 104 实例084 温度单位转换工具 105 实例085 域的默认初始化值 106 ...
字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...
LIKE比较用于模糊匹配字符串。 ```sql SELECT * FROM table WHERE column LIKE '%value%'; ``` ##### 10. JAVA的LIKE操作(`RLIKE`) RLIKE操作类似于LIKE,但使用的是Java正则表达式。 ```sql SELECT * FROM ...
- 用于模糊匹配字符串的开始部分。 - 示例:`SELECT * FROM employees WHERE name STARTING WITH 'A';` - **ORDER BY子句**: - 对结果进行排序。 - 示例:`SELECT * FROM employees ORDER BY salary DESC;` -...
在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。 SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。 多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后...
- `trim()`:去除字符串首尾的空格。 - `round()`:进行四舍五入,如`round(145.456, 数字)`,第二个参数为保留的小数位数。 - `rand()`:生成随机数,如`rand()*数字`。 - `IFNULL()`:如果字段为空,则替换为...
比如,提倡使用参数绑定而非字符串拼接来构造SQL,避免全表扫描,合理设计数据库表结构和索引,以及正确使用事务隔离级别等。 六、工程规约 工程规约关注项目结构、依赖管理、持续集成等方面。手册推荐使用Maven或...
`Concatenate`函数用于将两个或多个字符串连接成一个新字符串;`Substring`用于从字符串中提取一个子字符串;`Trim`用于去除字符串两端的空白字符或其他预定义字符。这些函数对于文本数据的处理非常重要。 #### DDL...
- **解析:** Java中使用 `Integer.parseInt()` 方法可以将字符串转换为整数。 #### 3. PL/SQL块 - **答案:** ```sql DECLARE total NUMBER := 0; BEGIN FOR i IN 1..10 LOOP total := total + i; END LOOP;...
6. Java程序中的`main`方法的参数`args[]`是字符串数组,表示命令行参数。`args.length`表示参数数量,`args[1].length()`表示第二个参数的长度。因此,输入"aaa bb c"时,输出为3 2。 7. 公式自动填充是电子表格...
在实际操作中,可以使用Python的Pandas库进行数据清洗和处理,利用其强大的数据操作功能,如`str.replace()`、`str.lower()`等方法进行字符串转换。此外,还可以使用SQL进行数据库查询和更新。 综上所述,车辆名...
8. 字符串类型操作:在Python中,len()函数用于计算字符串的长度,而不是str.len()。其他选项描述正确。 9. Access2003数据操作:在Access中,"记录"菜单主要用于数据的筛选,而不是查找、定位或追加。 10. WWW...
### JAVA基础面试题详解 ...5. **CHAR与VARCHAR2的区别**:`CHAR`固定长度字符串类型,如果插入的数据长度小于定义的长度,会在末尾填充空格;`VARCHAR2`则为可变长度字符串类型,节省存储空间,更灵活。