问题是这样子,在数据库中我需要有转义\,因为我是通过关键字查询的,你比方说like '%'pe%',我要查找的数据只是'pe,所有要在java中把keyword变成\keyword,但是java如下:if(keyword.starsWith("'")){
   keyword = "\\\\" + keyword;
}
结果总是有出错,希望哪位点拔一下,晕头了都 

解决方案 »

  1.   

    keyword = "\'" + keyword
     
      

  2.   

    keyword中有',那就什么也不用做了吧.
      

  3.   

    我已经用了4个 ,也不行if (input.startsWith("^")) {
    input = "\\\\" + input;
    }
      

  4.   

    你要转义的是 单引号吧, 建议使用 preparedstatement, 这个类, 能够自动处理特殊字符.否则,如果要原样引用一个单引号, 应该写成四个单引号 , '''', 这样才代表一个单引号字符
      

  5.   

    我当然可以在数据库查询语句里面加一个“\”,但是我想把这个东西抽象出来,就是说直接通过java把keyword变成 \keyword的形式
      

  6.   

    那就二个斜线就够了吧
    "\\keyword"
      

  7.   

    用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
     用户的当前工作目录
     
      

  8.   

    keyword = "'''" + keyword ;
    我用的SQL-SERVER OK 
    不用\
      

  9.   

    mysql 我的意思很简单,我就是把用户输入的keyword变成 “\”+ keyword,因为用户数据可能有这样的数据'XXX,而'xxx通过数据库的时候肯定会出错,所以要转义
      

  10.   

    keyword=java.io.File.separator + keyword;
    解决了,谢谢各位