【发布时间】:2011-03-18 15:48:47
【问题描述】:
我有一个包含任意数量点的字符串,有时也是一个点序列。
我想用_(下划线)替换每个.(点),但是当有一系列点时,这也应该只产生一个下划线。
有什么想法吗?
我正在使用 java。
【问题讨论】:
我有一个包含任意数量点的字符串,有时也是一个点序列。
我想用_(下划线)替换每个.(点),但是当有一系列点时,这也应该只产生一个下划线。
有什么想法吗?
我正在使用 java。
【问题讨论】:
您可以将replaceall 方法用作:
str = str.replaceAll("\\.+","_");
正则表达式\\.+的解释
. 是一个正则表达式元字符,用于匹配任何内容(换行符除外)。因为我们想匹配一个文字.,所以我们用\ 转义它。由于 Java 字符串和正则表达式引擎都使用\ 作为转义字符,我们需要使用\\,+ 是一个或多个的量词。
我们也可以使用:
str = str.replaceAll("[.]+","_");
由于字符类中的 . 按字面意思处理,因此无需对其进行转义。
【讨论】: