コード例 #1
0
ファイル: TestUsage.cs プロジェクト: turkmvc/CommonUtils
        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());
        }