private void StringTokenizerTest() { //StringSplitter sınıfıda bu sınıfı kullanır. //C++ dilindeki strtok() fonksiyonuna benzerdir, verilen anahtara kadar olan metni dönderir, her çağrıldığında //gelen metinden sonraki kalan metin üzerinde arama yapar, bir nevi split ile aynı işlevi görür. //2 Türlü kullanımı mevcuttur, Extensions olarak kullanımın da, yalnızca string dönüş yapar, //fakat sınıf olarak kullanılması halinde StringTokenResult sınıfı olarak dönüş yapar. //1. Tür kullanımı; StringTokenizer stringTokenizer = new StringTokenizer("cw arge+macmillan*deneme"); string[] ara = new string[] { " ", "+", "*" }; StringBuilder sb = new StringBuilder(); for (int i = 0; i < ara.Length; i++) { sb.AppendFormat("Aranan Token: {0}\r\n", ara[i]); StringTokenResult result = stringTokenizer.Tokenize(ara[i]); sb.AppendFormat("Dönen Metin: {0}\r\n", result.TokenText); sb.Append("-------------------------"); sb.AppendLine(); //Tokenin bulunup bulunmadığı // result.TokenFound //Tokenin metindeki konumu(bulunmazsa -1 döner) //result.TokenIndex //Bulunan Token(Çoklu token aramaları için) //result.TokenKey } //Token içerisindeki metinde son kısma gelinip gelinmediği... if (!stringTokenizer.Finish) { sb.AppendFormat("Kalan Metin: {0}", stringTokenizer.GetRemainText()); } MessageBox.Show(sb.ToString()); //2. Tür kullanımı(extension olarak, string dönderir. sb.Clear(); sb.Append("2. tür\r\n----------------------------\r\n"); string curstr = "item1+item2\\ deneme item3"; //item1+item2\\ deneme döner // \\ özel karakteri kullanılarak girilen karakterler ayraca dahil edilmez, ek olarak özel karakteri metin içerisine de //yazdırmaya izin veridk curstr = curstr.Tokenize(StringQuoteOption.None, StringSplitOption.AllowSpecialChar | StringSplitOption.PrintSpecialCharacter, " "); sb.AppendFormat("sıraki: {0}\r\n", curstr); //item1 döner curstr = curstr.Tokenize("+"); sb.AppendFormat("sıraki: {0}\r\n", curstr); MessageBox.Show(sb.ToString()); }