我需要用%20替换所有空格字符。我在Scala中写了这个。
strToConvert.map(c => if (Character.isSpaceChar(c)) "%20" else c).mkString
在Scala中有更好的方法吗?
[编辑] 让我们假设replaceAll不可用,我们希望实现类似于replaceAll方法的算法
答案 0 :(得分:1)
您可以使用String.replaceAll(what_to_replace, with_what)
。
例如。用%20
scala> val input = "this is my http request execute me"
input: String = this is my http request execute me
scala> input.replaceAll(" ", "%20")
res1: String = this%20is%20my%20http%20request%20%20%20%20%20%20%20%20%20%20execute%20me
或使用\\s
正则表达式(匹配单个空白字符)
scala> input.replaceAll("\\s", "%20")
res2: String = this%20is%20my%20http%20request%20%20%20%20%20%20%20%20%20%20execute%20me
如果您希望将多个空格替换为单个%20
,请使用匹配一个或多个空白字符序列的\\s+
scala> input.replaceAll("\\s+", "%20")
res3: String = this%20is%20my%20http%20request%20execute%20me