Dize
- İngilizcesi
- String
- Türkçe karşılığı
- karakter dizisi
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Dize, bir isim, cümle, URL ya da dosya içeriği gibi metni sıralı bir karakter dizisi olarak temsil eden bir veri türüdür.
Programlamada dize (string) nedir?
Dize, harfler, rakamlar, boşluklar, noktalama işaretleri ve emojiler gibi bir karakter dizisi olarak saklanan bir metin parçasıdır. Çoğu dilde metni "hello" veya 'hello' gibi tırnak içine alarak oluşturursunuz ve her karakterin genellikle 0'dan başlayan, indeks adlı bir konumu vardır. Dizeler en yaygın veri türleri arasındadır; kullanıcı girdisi, mesajlar, dosya yolları, URL'ler ve JSON gibi veri biçimleri için kullanılır.
Arka planda her karakter, bir karakter kodlamasına göre bir sayı olarak saklanır. Modern yazılım, neredeyse her yazı sisteminden karakterlere kod noktası (code point) adı verilen bir sayı atayan Unicode'u kullanır; UTF-8 ve UTF-16 gibi kodlamalar da bu sayıları baytlara dönüştürür. Dize uzunluğunun şaşırtıcı olabilmesinin nedeni budur: JavaScript'te çoğu emojinin length değeri 2'dir, çünkü her biri iki UTF-16 kod birimi kaplar.
Bir dizeyi, her boncuğun bir karakter olduğu ve sıranın önemli olduğu bir kolyedeki boncuklar olarak düşünebilirsiniz. Diller birçok yerleşik dize işlemi sunar: dizeleri birleştirme (concatenation), birinin bir kısmını alma (alt dize, substring), arama, değiştirme, bölme ve harf büyüklüğünü değiştirme. Birçoğu ayrıca JavaScript'teki şablon değişmezleri (template literal) ya da Python'daki f-string'ler gibi metnin içine değer ekleyen dize enterpolasyonunu da destekler.
JavaScript, Python, Java ve C# dahil birçok dilde dizeler değişmezdir (immutable); yani toUpperCase() gibi metotlar orijinali değiştirmek yerine yeni bir dize döndürür. Sık görülen bir karışıklık dize ile karakter arasındadır: Java, C ve C#'ta tek bir karakter için ayrı bir char türü vardır, JavaScript ve Python ise uzunluğu bir olan bir dize kullanır. Bir diğeri, birbirine benzeyen ama farklı davranan '42' dizesi ile 42 sayısı arasındadır; JavaScript'te '42' + 1 sonucu '421' olur.
Önemli noktalar
- Dize, metni temsil etmek için kullanılan sıralı bir karakter dizisidir.
- Dize değişmezleri tırnak içinde yazılır ve karakterlere 0'dan başlayan bir indeksle erişilir.
- Karakterler UTF-8 ve UTF-16 gibi Unicode kodlamalarıyla sayı olarak saklanır.
- Çoğu popüler dilde dizeler değişmezdir; bu yüzden işlemler yeni dizeler döndürür.
'42'dizesi ile42sayısı farklı türlerdir.
Örnek
const first = "Ada";
const last = "Lovelace";
// Concatenation and a template literal (string interpolation)
const full = first + " " + last;
const greeting = `Hello, ${first}!`;
console.log(full.length); // 12
console.log(full[0]); // "A" (indexes start at 0)
console.log(full.toUpperCase()); // "ADA LOVELACE" (a new string)
console.log(full.split(" ")); // ["Ada", "Lovelace"]
console.log("42" + 1); // "421", not 43Sık sorulan sorular
Birçok dilde dizeler neden değişmezdir?
Değişmez dizeleri bir programın parçaları ve iş parçacıkları arasında paylaşmak güvenlidir, çünkü hiçbir kod onları beklenmedik biçimde değiştiremez. Ayrıca diller özdeş dizeleri bellekte yeniden kullanabilir ve onları karma tablolarda (hash table) anahtar olarak güvenle kullanabilir.
Dize ile char arasındaki fark nedir?
char tam olarak bir karakter tutar; dize ise sıfır ya da daha fazla karakterden oluşan bir dizi tutar. Java, C ve C#'ta ayrı bir char türü vardır, JavaScript ve Python ise tek bir karakteri uzunluğu bir olan bir dize olarak temsil eder.
Boş dize nedir?
"" olarak yazılan boş dize, sıfır karakterli bir dizedir. Hiç değer olmadığı anlamına gelen null veya undefined'dan farklı olarak gerçek bir dize değeridir.
İlgili sayfalar
- Veri türüProgramlamanın Temelleri, s. 54Veri türü, bir programa bir verinin sayı ya da metin gibi hangi tür bir değer taşıdığını ve hangi işlemlerin ona uygulanabileceğini söyleyen sınıflandırmadır.
- DeğişkenProgramlamanın Temelleri, s. 10Değişken, bir programda sayı ya da metin gibi bir değeri tutan ve kodun çalışırken okuyup değiştirebildiği, adlandırılmış bir depolama alanıdır.
- DiziProgramlamanın Temelleri, s. 15Dizi, tek bir ad altında saklanan ve her öğesine genellikle 0'dan başlayan indeks adlı sayısal konumuyla erişilen, sıralı bir değerler koleksiyonudur.
- JSONBackend ve API'ler, s. 24JSON, yapılandırılmış veriyi anahtar-değer çiftleri ve listelerle saklayıp aktarmaya yarayan, insanın da makinenin de okuyabildiği hafif bir metin biçimidir.
- Hash TablosuVeri Yapıları, s. 18Hash tablosu, anahtar-değer çiftlerini saklayan ve hash fonksiyonuyla herhangi bir anahtarın değerini ortalamada sabit sürede bulan bir veri yapısıdır.
- Karakter kodlamasıProgramlamanın Temelleri, s. 34Karakter kodlaması, metni byte'lara ve geri metne çeviren kurallardır; her harfin saklanıp gönderilmesini sağlar. Bugünkü standart UTF-8'dir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin