シームレスに行うことは可能ですか?
scala> val p = "$"
scala> "hello, I have 65 dollars".replaceFirst("dollars", p)
現在の結果は
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
....
scala 2.10 で期待される結果:
hello, I have 65 $
p
問題は、シンボルを格納する変数$
にあり、正規表現ではなく文字列として処理する必要があります。
注: p 変数 (.toString などの標準関数のみ) を変更することはできません (たとえば、すべての非文字記号を置き換えます)。
注 2:与えられた例はおもちゃの例です。より一般的な解決策をいただければ幸いです。つまり、変数p
には任意のタイプのコンテンツ (記号、数値、テキストなど) を含めることができるため、"\\$" を "$" に置き換えてもあまり意味がありません。
(これは同様の問題の改善版です: scala string, raw string )