2015-06-25 3 views
0

У меня есть общий вопрос о том, как заменить строки.scala заменить строку с символом подчеркивания

Скажем, у меня есть 2 строки:

a = "i am going to watch game of throne tonight on my throne" 
b = "game_of_throne" 

Что является наиболее эффективным способом, чтобы заменить игру трона с game_of_throne (т.е. добавив под счет, чтобы рассматривать его в качестве одной строки объекта). Если я что-то вроде регулярного выражения:

val c = """_""".r.replaceAllIn(b," ").r 
val c.replaceAllIn(a, c) How do I actually ask it to draw the underscore? 

Я пытаюсь избежать разделения строки, поскольку он часто увеличивает время вычислений на довольно много.

EDIT: У меня их миллионная пара, поэтому мне нужно иметь возможность использовать карту и переменные a и b.

+0

'string.replace ("игра трона", "game_of_throne");' ' –

+0

a.replaceAll (b.replaceAll ("_"," «), б)' – nattyddubbs

+0

@AvinashRaj К сожалению, я не были полностью ясны, у меня есть миллионы пар из них, я должен иметь возможность использовать строковые представления a и b вместо этого. – GameOfThrows

ответ

1

a.replaceAll(b.replaceAll("_", " "), b)

Не уверен, что если есть более чистый Scala способ сделать это, но это следует делать.

0

Надеюсь, это может вам помочь.

object TestRegular extends App{ 
     val a = "i am going to watch game of throne tonight on my throne" 
     val c = """game of throne""".r.replaceAllIn(a,"game_of_throne") 
     println(c) 
} 
Смежные вопросы