Как искать каждое строковое слово и изменять его, как показано ниже;Как использовать подстановки
set firstLibrary {12345}
set secondLibrary {aghij}
Примечания:
1=a ; 2=g ; 3=h ; 4=i ; 5=j
set theString {44168}
то выход; 44168 = iia68
Как искать каждое строковое слово и изменять его, как показано ниже;Как использовать подстановки
set firstLibrary {12345}
set secondLibrary {aghij}
Примечания:
1=a ; 2=g ; 3=h ; 4=i ; 5=j
set theString {44168}
то выход; 44168 = iia68
Что вам нужно сделать, так это собрать эти две библиотеки в карту, которую вы можете использовать с string map
. Ключ к этому состоит в том, что вы можете использовать форму из двух списков: foreach
, а команда split
может легко разбить строку на свои символы компонента, если набор разделителей пуст.
set map {}
foreach from [split $firstLibrary ""] to [split $secondLibrary ""] {
lappend map $from $to
}
Применив карту с string map
к $theString
и печать результат остается в качестве упражнения.
Его отлично. Еще одно, как разбить строку на два слова из sttring. Например: {helloworlds} и вывод: он ll ow или ld s – Andre
@Andre Это было бы что-то для regexp: 'regexp -all -inline {..?}" Helloworlds "' –
Как получить второе строковое значение, если первое такое же строковое значение, а затем вычислить средние значения, как указано ниже;
set first {A B B C D E E E E E G K}
set second {12 42 51 66 24 75 33 11 22 86 43 66}
set lenghtString [lenght $first]
for {set i 0} {$i < $lenghtString} {incr i} {
#arg please
#If same string on first string then get second string
#B B = (42+51)/2 = 46.5
#E E E E E = (75+33+11+22+86)/5 = 45.4
}
output with puts by rows: 12 46.5 66 24 45.4 86 66
вопрос неясен, пожалуйста, добавить больше деталей – georoot
Посмотрите на [строка карту] (http://www.tcl.tk/man/tcl8.6/TclCmd/string.htm#M34) в документация –