它可以无缝地执行吗?scala,作为字符串处理的字符串变量不是正则表达式
scala> val p = "$"
scala> "hello, I have 65 dollars".replaceFirst("dollars", p)
当前结果是
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
....
预期的结果在阶2.10:
hello, I have 65 $
问题是与可变p
存储符号$
,我需要处理它作为一个字符串不正则表达式。
注:我不能修改(例如更换所有非字母符号)的变量p(仅标准功能,例如的ToString)
注2:该给定的例子是相当玩具-例。我会欣赏更通用的解决方案。即可变p
可以包含任何类型的内容(符号,数字,文字,...),因此替换“$”为“\\ $” doesn.t多大意义
(这是改善类似问题的版本: scala string, raw string)
相关http://stackoverflow.com/questions/12115187/replace-with – 2013-04-09 10:13:20
@ OM-NOM-NOM是的,我读它了,但有更换.. 。不存在某种方法可以在不猜测变量p可以包含或不能包含的情况下执行任务,以避免出错? – xhudik 2013-04-09 10:17:14
@Jesper这是不同的问题见note2 – xhudik 2013-04-09 13:15:11