2010年10月29日 星期五

指令tokenize

//tokenize
//功能:將一個字串(String),拆開成數個部分,並作各種運用

//為什麼需要這種功能?該如何使用?
//舉例來說:假如你得到了一個字串Object.Attr
//你希望單獨取出Object或是單獨取出Attr然後作不同運用

//定義一個字串陣列$myString,內容: myObject.translateX
string $myString = "myObject.translateX" ; 

//建立一個空的字串陣列[]
string $buffer[] ; 
  
// 使用tokenize
// Notice the arguments:  string, splitter, array. 
//規則:原字串 "拆開字元" 新的字串陣列
tokenize $myString "." $buffer ; 

//那你就可以得到$buffer裡存有myObject與translateX再作運用
print $buffer ;

//要注意的是,tokenize會自動除去"拆開字元"
string $myString = "myObject.translateX" ;
string $gggyy[]
tokenize $myString "t" $gggyy
print $gggyy
//得到的結果就會是四個字元:{"myObjec",".","ransla","eX"}

//也可以拿來作字串陣列的重組運用
//定義一個母字串,用","區隔開你想保留的子字串
string $myLine = "myObject,myAttribute,myValue,myMultiplier,myComment" ; 

// 執行Tokenize,將結果丟進$buffer中
string $buffer[] ; 
int $numTokens = `tokenize $myLine "," $buffer` ; 

//並得到一個新的變數$numTokens,顯示$buffer字串數量 
print $numTokens ; 
// Result: 5 

//重新定義子字串到不同變數中
string $object = $buffer[0] ; 
string $attribute = $buffer[1] ; 
string $value = $buffer[2] ; 
string $multiplier = $buffer[3] ; 
string $comment = $buffer[4] ;

//最後定義一個新的字串陣列,重組它們
string $myNewLine = ($object+","+$attribute+","+$value+","+$multiplier+","+$comment) ;
print $myNewLine;

//或是用一個字串重組的命令stringArrayToString
//功能:將分離的子字串結合成一個母字串,但並非字串陣列


//string stringArrayToString(字串陣列, "分隔陣列的字元")
stringArrayToString({$object,$attribute,$value,$multiplier,$comment} ,",")

//或是
stringArrayToString($buffer , ",")

//參考教學來源:http://www.scriptswell.net/

沒有留言: