Добавление / удаление из строки kdb - PullRequest
0 голосов
/ 06 марта 2019

Я работал над kdb и возился со строками и переменными.Мне было просто интересно, если это возможно, чтобы удалить часть строки и добавить что-то, чтобы сделать конец этого.

s1:"Hello"  s2:" World"

У меня есть объединенная строка «Hello World», которую я создал с помощью

s3:s1,s2

Я пытался удалить Hello и добавить что-то после World в объединенной строке.

s3[1*til 6] = Hello

Это позволяет мне выбрать часть строки Hello, если это поможет

Ответы [ 3 ]

4 голосов
/ 06 марта 2019

Строки - это списки символов, поэтому функция отбрасывания _ все равно будет работать с ними. Например, 1_"Hello" вернет ello.

Так что если вы хотите удалить «Hello» из вашей строки s3, вы должны использовать

q)5_s3
"World"

Для добавления чего-либо в конец этого требуется оператор соединения ,, например

q)s:"HelloWorld"
q)s1:"Mr. "
q)s2:5_s
q)s3:"wide"
q)s1,s2,s3
"Mr. Worldwide"
4 голосов
/ 06 марта 2019

Вы можете использовать drop (_), чтобы избавиться от «Hello», и join (,), чтобы добавить то, что вы хотите.Что-то вроде

q)6_s3,"star Hiphop"
"Worldstar Hiphop"

Если вы не хотите считать буквы в первом слове, вы можете использовать вектор из скаляра (vs), чтобы получить список зачисленных слов и индексировать его, а затем присоединиться к этому.:

q)(" " vs s3)[1],"star Hiphop"
"Worldstar Hiphop"

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

2 голосов
/ 06 марта 2019

Вы можете использовать функцию ssr (поиск строки заменить).

q)s3:"HelloWorld"

q)ssr[s3;"Hello";""], " of War"
"World of War"
...