如何用String.replaceFirst函数替换“?”

lzh5566 2007-03-14 04:29:15
String str = "where db between ? and ?";
str.replaceFirst("\\?", "1234");
str.replaceFirst("\\?", "5678");

希望得到的结果是:str == "where db between 1234 and 5678";

不知怎么回事,怎么搞也搞不定啊。。。

大虾帮我!谢谢

该函数定义如下:
public String replaceFirst(String regex,
String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的第一个子字符串。
...全文
858 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyang528378 2012-01-10
  • 打赏
  • 举报
回复
汗,我也是犯了这样的低级错误
str = str.replaceFirst("\\?","1234")不是str.replaceFirst("\\?","1234")!
跟伟哥学IOS 2012-01-09
  • 打赏
  • 举报
回复
String str = "where db between @number1 and @number2 ";
str = str.replaceFirst( "@number1", "1234 ");
str = str.replaceFirst( "@number2 ", "5678 ");
System.out.println(str);

用这个试试
lzh5566 2007-03-14
  • 打赏
  • 举报
回复
谢谢。。。。。。。谢谢。。。。

我看错了。。。。。。。。
lzh5566 2007-03-14
  • 打赏
  • 举报
回复
这个我上面写的一样啊,,,,

不行啊。。。
捏造的信仰 2007-03-14
  • 打赏
  • 举报
回复
String str = "where db between ? and ?";
str = str.replaceFirst("\\?", "1234");
str = str.replaceFirst("\\?", "5678");
System.out.println(str);
在Java编程过程中,我们有时会遇到需要处理带有前导零的数字字符串的情况。这时可能会考虑去除多余的零以获取真实的数值。以下介绍三种常用方法:### 方法一:通过调用Integer类中的parseInt方法 javaString tempStr = "0000123"; int result = Integer.parseInt(tempStr); 此方法适用于输入的字符串完全由数字构成并可成功转为整数的情形。该函数会自动忽略开头的所有零,因此result的值将是123。### 方法二:通过调用String类中的replaceFirst方法 javaString str = "0000123"; String newStr = str.replaceFirst("^0*", ""); System.out.println(newStr); 此替换操作会将所有前导的零删除,从而得到结果字符串的新值为"123"。### 方法三:通过调用String类的replaceAll方法 javaString str = "0000123"; String newStr = str.replaceAll("^(0+)", ""); System.out.println(newStr); 此替换功能会移除所有连续的初始零,结果字符串的新值同样是"123"。### 方法选择建议 虽然上述三种方法都能达到目标,但在实际应用中应根据具体情况选择合适的方案:- 当输入的字符串完全由数字构成并可成功转为整数时,使用parseInt是最简单快捷的方法;- 如果需要保留字符串形式或处理可能包含非数字字符的情况,则推荐采用replaceFirst或replaceAll方法。通常情况下,replaceFirst在多数场景中已经足够,因为它仅替换第一个匹配项;而replaceAll则用于需要替换全部情况的情形。选

62,629

社区成员

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

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