擅长:python、mysql、java
<p>实现目标的不同方法。使用string.replace是最糟糕的方法,因为会创建很多中间字符串(它们是不可变的)并将其丢弃</p>
<pre><code># string replace - inefficient due to lots of strings created
orgstring = "apples are-the best -fruits"
mystring = orgstring
while ' ' in mystring:
mystring = mystring.replace(' ','-')
print (mystring)
</code></pre>
<p>最好采用以下两种方法之一:使用列表收集所有需要的字符或使用regex解决:</p>
<pre><code>orgstring = "apples are-the best -fruits"
# list iterating appending unless its a duplicate -
mystring = ""
mylist = []
for c in orgstring:
if not mylist or mylist[-1] != '-' or c != '-':
mylist.append(c)
mystring = ''.join(mylist)
print(mystring)
# regex replacement of more then 1 - by only 1 -
import re
mystring = ""
mystring = re.sub("-+","-",orgstring)
print(mystring)
</code></pre>
<p>输出:</p>
<pre><code>apples-are-the-best-fruits
apples-are-the-best-fruits
apples-are-the-best-fruits
</code></pre>