被斜杠被晕了

sinpinle 2009-06-26 03:16:08
问题是这样子,在数据库中我需要有转义\,因为我是通过关键字查询的,你比方说like '%'pe%',我要查找的数据只是'pe,所有要在java中把keyword变成\keyword,但是java如下:

if(keyword.starsWith("'")){
keyword = "\\\\" + keyword;
}
结果总是有出错,希望哪位点拔一下,晕头了都
...全文
105 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinpinle 2009-06-26
  • 打赏
  • 举报
回复
keyword=java.io.File.separator + keyword;
解决了,谢谢各位
sinpinle 2009-06-26
  • 打赏
  • 举报
回复
mysql 我的意思很简单,我就是把用户输入的keyword变成 “\”+ keyword,因为用户数据可能有这样的数据'XXX,而'xxx通过数据库的时候肯定会出错,所以要转义
shi676879453 2009-06-26
  • 打赏
  • 举报
回复
keyword = "'''" + keyword ;
我用的SQL-SERVER OK
不用\
txf_7337 2009-06-26
  • 打赏
  • 举报
回复
用System.getProperty(String key)
key:
java.version
Java 运行时环境版本

java.vendor
Java 运行时环境供应商

java.vendor.url
Java 供应商的 URL

java.home
Java 安装目录

java.vm.specification.version
Java 虚拟机规范版本

java.vm.specification.vendor
Java 虚拟机规范供应商

java.vm.specification.name
Java 虚拟机规范名称

java.vm.version
Java 虚拟机实现版本

java.vm.vendor
Java 虚拟机实现供应商

java.vm.name
Java 虚拟机实现名称

java.specification.version
Java 运行时环境规范版本

java.specification.vendor
Java 运行时环境规范供应商

java.specification.name
Java 运行时环境规范名称

java.class.version
Java 类格式版本号

java.class.path
Java 类路径

java.library.path
加载库时搜索的路径列表

java.io.tmpdir
默认的临时文件路径

java.compiler
要使用的 JIT 编译器的名称

java.ext.dirs
一个或多个扩展目录的路径

os.name
操作系统的名称

os.arch
操作系统的架构

os.version
操作系统的版本

file.separator
文件分隔符(在 UNIX 系统中是“/”)

path.separator
路径分隔符(在 UNIX 系统中是“:”)

line.separator
行分隔符(在 UNIX 系统中是“/n”)

user.name
用户的账户名称

user.home
用户的主目录

user.dir
用户的当前工作目录

shi676879453 2009-06-26
  • 打赏
  • 举报
回复
上面错了 应该是\'\'\'
shi676879453 2009-06-26
  • 打赏
  • 举报
回复
要看你用什么数据库 的
你用\'''试下
xnjnmn 2009-06-26
  • 打赏
  • 举报
回复
\\足以
bigbug9002 2009-06-26
  • 打赏
  • 举报
回复
转义只是书写的时候需要.以便让处理字符串的程序能正确认识你书写的字符.在内存中的字符串,是已经认识了得,就不需转义了.
yuxinglian 2009-06-26
  • 打赏
  • 举报
回复
那就二个斜线就够了吧
"\\keyword"
sinpinle 2009-06-26
  • 打赏
  • 举报
回复
我当然可以在数据库查询语句里面加一个“\”,但是我想把这个东西抽象出来,就是说直接通过java把keyword变成 \keyword的形式
yuxinglian 2009-06-26
  • 打赏
  • 举报
回复
你要转义的是 单引号吧, 建议使用 preparedstatement, 这个类, 能够自动处理特殊字符.

否则,如果要原样引用一个单引号, 应该写成四个单引号 , '''', 这样才代表一个单引号字符
sinpinle 2009-06-26
  • 打赏
  • 举报
回复
我已经用了4个 ,也不行
if (input.startsWith("^")) {
input = "\\\\" + input;
}
zuijiejina 2009-06-26
  • 打赏
  • 举报
回复
要是正则表达式里出现‘\’是需要4个\的。。。
bigbug9002 2009-06-26
  • 打赏
  • 举报
回复
keyword中有',那就什么也不用做了吧.
sinpinle 2009-06-26
  • 打赏
  • 举报
回复
显然是不行的,程序都会有错误
bigbug9002 2009-06-26
  • 打赏
  • 举报
回复
keyword = "\'" + keyword

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧