# Dizelerle çalışma

substring() | endswith() | startswith() | contains() | len() | concat() | splitter() | lower() | upper() | strip() | capitalize() | title() | normalizePhone() | replace() | base64() | base64decode() | urlencode() | urldecode() | hmac\_hexdigest() | select\_random() | tg\_escape()

<mark style="color:kırmızı;">**LEJANT:**</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- Gerekli parametreler</mark>

<details>

<summary>Açıklama</summary>

**substring(str, n1, n2)** - bir dizgiyi kırpmak için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**n1**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- soldan kırpılacak karakter sayısı</mark> (> 0)

**n2** - sağdan kırpılacak karakter sayısı (< 0)

**endswith(str, substr)** - dizginin verilen alt dizgi ile bitip bitmediğini kontrol etmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark> - "nerede aranacağı"

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**substr**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- arama dizgisi</mark> - "ne aranacağı"

**startswith(str, substr)** - dizginin verilen alt dizgi ile başlayıp başlamadığını kontrol etmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark> - "nerede aranacağı"

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**substr**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- arama dizgisi</mark> - "ne aranacağı"

**contains(str, substr,registr)** – ilk dizginin ikinci dizgiyi içerip içermediğini kontrol etmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark> - "nerede aranacağı"

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**substr**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- arama dizgisi</mark> - "ne aranacağı"

**registr** - büyük/küçük harf duyarlılığının dikkate alınıp alınmayacağını belirten bir bayrak (False, harf duyarlılığının dikkate alınmaması demektir)

**len(str)** – bir dizgideki karakter sayısını saymak için.

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**concat(str1, str2)** – parametre olarak verilen dizgileri birleştirmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str1**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- 1. dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str2**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- 2. dizgi</mark>

**splitter(str, s, n)** - bir dizgiyi parçalara ayırmak için. Fonksiyon bir eleman dizisi döndürür

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**s**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- dizgi ayırıcı</mark>

**n** - maksimum eleman sayısı

**lower(str)** – bir dizgiyi küçük harfe dönüştürmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**upper(str)** - bir dizgiyi büyük harfe dönüştürmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**strip(str)** - bir dizginin her iki ucundaki boşlukları kaldırmak için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**capitalize(str)** - bir dizginin ilk karakterini büyük harf karşılığıyla değiştirmek için (kelimenin ilk harfini büyük yapar).

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**title(str)** - str dizgisindeki her kelimeyi, ilk harfi büyük diğerleri küçük olacak şekilde dönüştürmek için

**normalizePhone(str)** - bir telefon numarasını standart biçime getirmek için: tüm rakam olmayan karakterleri kaldırır ve varsa baştaki 8 rakamını 7 ile değiştirir

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- telefon numarası içeren orijinal dizgi</mark>

**replace(str, s1, s2, n)** - bir dizgideki bir alt dizgiyi başka bir alt dizgiyle değiştirmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**s1**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- değiştirilecek alt dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**s2**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- yerine konulacak alt dizgi</mark>

**n** - değiştirme sayısı

\
**base64(str)** – bir dizgiyi base64 biçiminde kodlamak için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**base64decode(str)** - base64'ü tekrar bir dizgiye çözmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

**urlencode(str) -** bir dizgiyi HTTP iletimine uygun olacak şekilde kodlamak için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

Örneğin: *John Smith* olur *John%20Smith*, ve *Anna\&Maria* olur *Anna%26Maria*

**urldecode(str)** - URL kodlu bir dizgiyi çözmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

Örneğin: John%20Smith, John Smith olarak çevrilecektir

**hmac\_hexdigest(secret\_key, msg, hash\_type)** - bir dizgiyi 'sha256', 'md5', 'sha512' veya 'sha1' kullanarak karma hale getirmek için

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**secret\_key**</mark> - anahtar\ <mark style="color:kırmızı;">**!**</mark>  <mark style="color:kırmızı;">**msg**</mark> - karma yapılacak dizgi\ <mark style="color:kırmızı;">**!**</mark>  <mark style="color:kırmızı;">**hash\_type**</mark> - karma türü ('sha256', 'md5', 'sha512' veya 'sha1')

**select\_random(str, s) -** ayraçlı bir dizgiden rastgele bir öğe seçmek için. İlk parametre öğeleri içeren dizgidir, ikincisi ayırıcıdır. İkinci parametrenin varsayılan değeri '|' olur.

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**s**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">-</mark> dizgi ayırıcı (varsayılan '|')

Kullanım örneği:&#x20;`select_random('ilk öğe | ikinci öğe | başka bir öğe | bir tane daha')`

**tg\_escape(str)** - bir değişkeni kaçışlayıp etkin biçimlendirme açıkken bir Telegram mesajında göstermek için. Fonksiyon aşağıdaki karakterlerin önüne bir ters eğik çizgi ekler:&#x20;'\_', '\*', '\[', ']', '(', ')', '\~', '', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!'

Parametreler:

<mark style="color:kırmızı;">**!**</mark> <mark style="color:kırmızı;">**str**</mark> <mark style="color:kırmızı;"></mark><mark style="color:kırmızı;">- orijinal dizgi</mark>

</details>

<details>

<summary>Örnekler</summary>

Dizgi kırpma işlevini inceleyelim:

<div data-with-frame="true"><figure><img src="/files/ee70b998be1a62a1587d6b14a2d1b0e9dc43799f" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/399bf97d05f72fbd80c824ab2b778db18d4bff03" alt="" width="375"><figcaption></figcaption></figure></div>

Dizginin uzunluğunu belirleme:

<div data-with-frame="true"><figure><img src="/files/08d44e63df4cacc8fd819f95496b4570c9bbb4ef" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/6f28192729868dc47936a3309ce829fd524df8fa" alt="" width="375"><figcaption></figcaption></figure></div>

Bir dizgiyi parçalara ayıran bir işlev, tablolarla çalışırken genellikle gereklidir:

<div data-full-width="true" data-with-frame="true"><figure><img src="/files/170402a583495105f4161754b63742e9370355fb" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-full-width="true" data-with-frame="true"><figure><img src="/files/34e67b09b6db6bf944a394b4413b35502dbb8924" alt="" width="375"><figcaption></figcaption></figure></div>

Telefon numarası işleme:

<div data-with-frame="true"><figure><img src="/files/4ce1611f75c713838756daa19ed68bf42376946d" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/4300b4e067c80db86e4963b1e430d5b894a3dc60" alt="" width="375"><figcaption></figcaption></figure></div>

Bir dizgideki alt dizgiyi değiştirme:

<div data-full-width="true" data-with-frame="true"><figure><img src="/files/c87956f0715a039a03223e84307626715d0a1207" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-full-width="true" data-with-frame="true"><figure><img src="/files/6c26ef134a726ef16d41d54f4b20a3d3b8e8c743" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Kopyalama için kod örneği</summary>

<pre><code><strong>/*substring() incelemesi*/
</strong>text = 'kırpılacak metin'
a=substring(text, 4)
a1=substring(text, -4)
b=substring(text, 4, 6)
b1=substring(text, 0, 6)
c=substring(text, 0, -4)
d=substring(text, 4, -4)

/*len() ile çalışma*/
text = 'kırpılacak metin'
a=len(text)
b=len("ne kadar harika bir dünya!")

/*dizgiyi parçalara ayır*/
elements = splitter('s, W, q', ',')
text='text1:text2:text3:text4:text5'
texts = splitter(text, ':',2)

/*title()*/
ad soyad = John Smith
ad soyad = title("#{ad soyad}")

/*telefon numarası işleme*/
phone = normalizePhone("+971 50 123 4567")

/*bir dizgi içindeki alt dizgi değiştirme*/
a=replace("wwww2222ww", "w", "e", 1)


</code></pre>

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/functions/hesap-makinesi/strings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
