2016-11-20 60 views
-1

如何搜索每個字符串單詞並將其更改爲如下所示;如何使用替換

set firstLibrary {12345} 
set secondLibrary {aghij} 

備註:

 
1=a ; 2=g ; 3=h ; 4=i ; 5=j 
set theString {44168} 

然後輸出; 44168 = iia68

+0

這個問題不清楚,請添加更多細節 – georoot

+2

看看[字符串映射(http://www.tcl.tk/man/tcl8.6/TclCmd/string.htm#M34)在文檔 –

回答

3

您需要做的是將這兩個庫組裝成一個可與string map一起使用的映射。關鍵在於你可以使用foreach的雙列表形式,並且如果分隔符集爲空,則split命令可以輕鬆地將字符串分解爲其組成字符。

set map {} 
foreach from [split $firstLibrary ""] to [split $secondLibrary ""] { 
    lappend map $from $to 
} 

應用與string map地圖上$theString和打印結果留作練習。

+0

其很好。還有,如何從sttring中分割一個字符串兩個字。例如:{helloworlds}和輸出結果如下:他將會運行或者ld s – Andre

+0

@Andre這將是正則表達式的一部分:'regexp -all -inline {..?}「helloworlds」 –

0

如何獲得第二個字符串值,如果第一個相同的字符串值,然後計算平均值如下;

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