java的replaceAll函数问题

biancheng369 2009-10-15 04:33:40
我想把一段连续的字母替换成每个字母后接一个空格,replaceAll的参数怎么写?
...全文
943 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjb1216 2009-11-03
  • 打赏
  • 举报
回复
1楼正解
mousejerry1220 2009-10-15
  • 打赏
  • 举报
回复
1美圆的就可以分开一切。都是美圆惹的祸!
sohighthesky 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lxxzhy 的回复:]
引用 14 楼 lz12366007 的回复:
$1是啥意思啊??
第一组匹配的内容.

#1给出的正则是([a-zA-Z]),第一组的意思就是第一对括号里面的匹配的内容.

其实,这样也可以s.replaceAll("[a-zA-Z]", "$0 "),$0表示整个正则匹配的内容
[/Quote]
tks
hui94781674 2009-10-15
  • 打赏
  • 举报
回复
看来正则表达式。。一定要补上。。
lxxzhy 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lz12366007 的回复:]
$1是啥意思啊??
[/Quote]第一组匹配的内容.

#1给出的正则是([a-zA-Z]),第一组的意思就是第一对括号里面的匹配的内容.

其实,这样也可以s.replaceAll("[a-zA-Z]", "$0 "),$0表示整个正则匹配的内容
amdgaming 2009-10-15
  • 打赏
  • 举报
回复
学习 。。。。
lz12366007 2009-10-15
  • 打赏
  • 举报
回复
$1是啥意思啊??
Emiya_wang 2009-10-15
  • 打赏
  • 举报
回复
很神奇 学习了
lxxzhy 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 imasmallbird 的回复:]
明白了~~

    在JDK中还有如下解释:
    "方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
    Pattern.compile(regex).matcher(str).replaceAll(repl);"

    而对于 matcher(str).replaceAll(repl);中的replaceAll方法又有如下的解释:
    "注意,在替换字符串中使用反斜线 (\) 和美元符号 ($) 可能导致与作为字面值替换字符串时所产生的结果不同。
美元符号可视为到如上所述已捕获子序列的引用,反斜线可用于转义替换字符串中的字面值字符。"
[/Quote]
哈哈,我以前也只知道Matcher.appendReplacement(StringBuffer sb, String replacement)的第二个参数可以用美圆来捕获组,原来replaceAll也可以.
justformygame 2009-10-15
  • 打赏
  • 举报
回复
学习
谢谢
yingShisscWang 2009-10-15
  • 打赏
  • 举报
回复
第一组匹配
imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ckw1988 的回复:]
引用 4 楼 imasmallbird 的回复:
引用 1 楼 yuzuru 的回复:
s.replaceAll("([a-zA-Z])", "$1 ")

还真行呀,没这么用过。。
挺高兴,又学了一招~~
能不能解释一下,为什么可以直接这么用??
看JDK的文档,那个应该是常量呀


常量??这个参数名都叫regex了,本意当然就是让你放正则表达式的。
[/Quote]
你看一下,那是第一个参数叫regex,第二个参数是你要替换的值参数叫replacement~~~
q789789789 2009-10-15
  • 打赏
  • 举报
回复
uu
舷Kelvin 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 imasmallbird 的回复:]
引用 1 楼 yuzuru 的回复:
s.replaceAll("([a-zA-Z])", "$1 ")

还真行呀,没这么用过。。
挺高兴,又学了一招~~
能不能解释一下,为什么可以直接这么用??
看JDK的文档,那个应该是常量呀
[/Quote]

常量??这个参数名都叫regex了,本意当然就是让你放正则表达式的。
springbird 2009-10-15
  • 打赏
  • 举报
回复
学习一下
imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
  明白了~~

在JDK中还有如下解释:
"方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl);"

而对于 matcher(str).replaceAll(repl);中的replaceAll方法又有如下的解释:
"注意,在替换字符串中使用反斜线 (\) 和美元符号 ($) 可能导致与作为字面值替换字符串时所产生的结果不同。
美元符号可视为到如上所述已捕获子序列的引用,反斜线可用于转义替换字符串中的字面值字符。"
imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yuzuru 的回复:]
s.replaceAll("([a-zA-Z])", "$1 ")
[/Quote]
还真行呀,没这么用过。。
挺高兴,又学了一招~~
能不能解释一下,为什么可以直接这么用??
看JDK的文档,那个应该是常量呀
goodmrning 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yuzuru 的回复:]
s.replaceAll("([a-zA-Z])", "$1 ")
[/Quote]

正解!
imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
感觉简单的一问,把我难住了,如果直接用replaceAll,第二个参数,应该是一个已知的常串,而
之前如果不做处理,那么用replaceAll感觉应该是实现不了~~
yuzuru 2009-10-15
  • 打赏
  • 举报
回复
s.replaceAll("([a-zA-Z])", "$1 ")

62,614

社区成员

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

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