因为你的[btime]两边都有中括号了,这样他就会被当成正则表达式了,你把中括号去掉就可以了当成正则表示式后,就当成了枚举了,所以没一个字母都被用100替换了

解决方案 »

  1.   

    replaceAll是使用正则表达式的方法进行替换,你上面使用的[btime]在正则表达式中的意思为含有b/t/i/m/e的任何表达式,而不是字符串"[btime]",你可以换掉这个表达式换成\[btime]试试,或者使用其他的字符串试试
      

  2.   

    String x="select * from aa where data1 >btime and data2 < etime";
    x.replaceAll("btime","100")
    这样就可以了。
      

  3.   

    为什么不用PreparedStatement呢?
    String sql ="select * from aa where data1 > ? and data2 < ? ";
    PreparedStatement pstmt = conn.preparedStatement(sql);
    pstmt.setInt(1, 100);
    pstmt.setInt(2, 200);
    ResultSet rs = pstmt.exceute();
      

  4.   

    同上,Regular Expression 
    楼主可用x.replaceAll("\\[btime\\]","100");
      

  5.   

    对不起
    是PreparedStatement, 上面那个是我自己平时用的
      

  6.   

    同上,Regular Expression 
    楼主可用x.replaceAll("\\[btime\\]","100");
    正解!我一下