Java Dersleri 13)Stringler [ÇEVİRİ]

WinnerMan

Uzman üye
31 Mar 2012
1,324
0
Eskişehir
Stringler, Java'da geniş bir kullanım alanına sahiptir ve karakterlerin dizisinden oluşurlar.Java'da stringler nesnedir.
Java platformu ,string yaratmak ve manipüle etmek için String sınıfını destekler.

String Yaratma:

En çok kullanılan yol şudur:
String greeting = "Hello World";

Derleyici, string kelimesiyle karşılaşırsa , bir String nesnedi yaratır.Ve değer ataması yapılmamışsa null değer ile doldurulur.

Diğer bir çok nesne gibi, "new" anahtar kelimesi ile String nesneleri yaratabilirsiniz.String sınıfı, stringin değerini belirlemenize yarayan 11 adet yapıcı metoda sahiptir.

Aşağıda array şeklinde yükleme gösterilmiştir:
public class StringDemo{

public static **** main(String args[]){
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
String helloString = new String(helloArray);
System.out.println( helloString );
}
}


Sonuç:
hello.

Not:String sınıfı değişmez, String nesnesi bir kez yüklendikten sonra değiştirilemez.Eğer değiştirilmesi gerekirse, String Buffer ve String Builder sınıfları kullanılmalıdır.

String Uzunluğu:

Metotlar, objeler hakkında bilgi elde etmek için kullanılır.Bir erişim metodu olan length() ile String nesnesinin uzunluk bilgisi alınabilir.

Aşağıda length() metodu ile ilgili örnek verilmiştir:
public class StringDemo {

public static **** main(String args[]) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println( "String Length is : " + len );
}
}


Sonuç:
String Length is : 17

Stringleri Birleştirmek:


String sınıfı , iki stringi birleştirmenizi sağlayan bir metoda sahiptir:
string1.concat(string2);

Bu metod string1 in sonuna string2 yi ekler.Diğer bir kullanım şekli ise şöyledir:
"My name is ".concat("Zara");

Stringler çoğunlukla + operatörüyle birleştirilirler:
"Hello," + " world" + "!"

Sonuç:
"Hello, world!"

Aşağıdaki örneğe bakalım:
public class StringDemo {

public static **** main(String args[]) {
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
}
}


Sonuç:
Dot saw I was Tod

Biçim Katarları Oluşturma:

Formatlı sayıları çıktı olarak vermek için printf() ve format() metotlarımız var.

Stringlerin static format() metodunu kullanmak, string nesneler tekrar kullanmamızı sağlar.
Örnek olarak, şu kod yerine:

System.out.printf("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);


Bu:

String fs;
fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);


String Metotları:

Aşağıda String sınıfının desteklediği metotlar açıklanmıştır:

char charAt(int index) Belirtilen index numarasındaki karakteri döndürür.
int compareTo(Object o)String ile objeyi karşılaştırır.
int compareTo(String anotherString)String ile verilen diğer stringi sözlük sırasına göre karşılaştırır.
int compareToIgnoreCase(String str)İki stringi sözlük sırasına göre karşılaştırır ama harf duyarsızdır.
String concat(String str)Belirtilen stringi ekler.
boolean contentEquals(StringBuffer sb)Eğer belirtile string ile verilen string aynı ise true döndürür.
static String copyCalueOf(char[] data)Belirtilen arrayın içindeki karakter dizilerini temsil eden Stringi döndürür.
static String copyOfValue(char[] data, int offset, int count)Belirtilen arrayın içindeki karakter dizilerini temsil eden Stringi döndürür.
boolean endsWith(String suffix)Bu stringin sonunda belirtilen string olup olmadığına bakar.
boolean equals(Objec anObject)Bu stringi, belirtilen obje ile karşılaştırır.
boolean equalsIgnoreCase(String anotherString)Harf duyarlılığı olmadan iki stringi karşılaştırır.
byte getBtyes() Platformun default charsetini kullanarak bu stringi byte dizisine kodlar ve yeni bir byte arrayı olarak depolar
byte[] getBytes(String charsetName)Belirtilen chareti kullanarak bu stringi byte dizisine kodlar ve yeni bir byte arrayı olarak depolar
**** getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)Karakterleri hedef karakter dizisine kopyalar.
int hashCode() Bu string için bir hash kod döndürür.
int indexOf(int ch)Bu stringin içinde belirtilen karakterin indexini döndürür.
int indexOf(int ch, int fromIndex)Bir üsttekinden tek farkı aramaya belirtilen indexten başlaması
int indexOf(String str)Bu stringin içinde belirtilen stringin indexini döndürür.
int indexOf(String str, int fromIndex) Belirtilen altstringin içinde string arar.
String intern() String nesnesi için standart sunumu döndürür.
int lastIndexOf(int ch)Belirtilen karakterin , string içinde en son bulunduğu yerin indexini verir.
int lastIndexOf(int ch, int from Index)Belirtilen yerden başlayarak geriye doğru giden bir arama düzeni vardır.
int lastIndexOf(String str)Belirtilen altstringin içinde, en sağdaki aynı metnin indexini döndürür.
int lastIndexOf(String str, int fromIndex)Belirtilen altstringin içinde, en sağdaki aynı metnin indexini döndürür.Geriye doğru arama yapar.
int length()Stringin uzunluğunu döndürür.
boolean matches(String regex)Stringin,verilen regular expression ile eşleşip eşleşmediğini söyler
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)İki stringin alanlarının eşit olup olmadığını test eder.
boolean regionMatches(int toffset, String other, int ooffset, int len)Stringin alanlarının eşit olup olmadığını test eder.
String replace(char oldChar, char newChar)Eski karakteri yenisi ile değiştirir.
String replaceAll(String regex, String replacement)Verilen regular expression ile eşleşen tüm altstringleri de değiştirir.
String replaceFirst(String regex, String replacement)İlk altstringi eşleşen regex ile değiştirir.
String[] split(String regex) Stringin çevresindeki , regex ile eşleşenleri ayırır.
String[] split(String regex, int limit)Stringi, verilen regexe göre ayırır.
boolean startsWith(String prefix)Stringin, belirtilen önekle başlayıp başlamadığını test eder.
boolean startsWith(String prefix, int toffset)Stringin, belirtilen indexte belirtilen önekle başlayıp başlamadığını test eder.
CharSequence subSequence(int beginIndex, int endIndex)Bu dizinin alt dizisi olan yeni bir karakter dizisi döndürür.
String substring(int beginIndex)Bu stringin alt stringi olan yeni bir string döndürür.
String substring(int beginIndex, int endIndex)Bu stringin alt stringi olan yeni bir string döndürür.
char[] toCharArray()Stringi bir karakter dizisine dönüştürür.
String toLowerCase() Tüm karakterleri küçüğe döndürür.
String toLowerCase(Locale locale) Verilen kurala göre tüm karakterleri küçüğe döndürür.
String toString()Bu zaten stringtir.Ve kendisini döndürür.
String toUpperCase()Tüm karakterleri default kurallara göre büyüğe döndürür.
String toUpperCase(Locale locale)Tüm karakterleri verilen kurala göre büyüğe döndürür.
String trim()Stringin bir kopyasını döndürür.(baştaki ve sondaki boşlukları siler.)
static String calueOf(primitive veri tipi x)Verilen veri tipi argümanının temsili olan stringi döndürür.



Not: Çevirilerin hepsi benimdir.Aralarda değiştirme, ekleme yapılmıştır.Benden izinsiz kopyalanması ve başka bir yerde yayınlanması durumunda hakkımı helal etmiyorum!
 

ihan3t

Kadim Üye
7 Şub 2012
5,018
24
Stringler için en önemli özelliklerinden bahsedilmemiş..

concat ile string birleştirme örneği verilmiş ama önemli detaylar atlanılmış.

Javada stringler immutable nesnelerdir. Yani değiştirilemez.

Bu demektir ki bir stringi oluşturduktan sonra, concat ile başka bir string eklediğinizde aslında o string değiştirilmez , arkaplanda yeni bir string oluşturulup geriye döndürülür. Bu da 2den fazla stringi birleştirirken performans kaybına yol açar.

İkiden fazla stringi birleştirirken StrginBuilder sınıfının append metodu kullanılmalıdır.

-Neden StringBuffer değil de StringBuilder ?
StringBuilder ve StringBuffer sınıfları temelinde aynı işlevi görür, tek fark StringBuffer synchronize dir, StringBuilder değil.. Bu sebeple StringBuilder daha hızlı çalışır.
 

WinnerMan

Uzman üye
31 Mar 2012
1,324
0
Eskişehir
Stringler için en önemli özelliklerinden bahsedilmemiş..

concat ile string birleştirme örneği verilmiş ama önemli detaylar atlanılmış.

Javada stringler immutable nesnelerdir. Yani değiştirilemez.

Bu demektir ki bir stringi oluşturduktan sonra, concat ile başka bir string eklediğinizde aslında o string değiştirilmez , arkaplanda yeni bir string oluşturulup geriye döndürülür. Bu da 2den fazla stringi birleştirirken performans kaybına yol açar.

İkiden fazla stringi birleştirirken StrginBuilder sınıfının append metodu kullanılmalıdır.

-Neden StringBuffer değil de StringBuilder ?
StringBuilder ve StringBuffer sınıfları temelinde aynı işlevi görür, tek fark StringBuffer synchronize dir, StringBuilder değil.. Bu sebeple StringBuilder daha hızlı çalışır.

Şimdi çeviriyi tam hatırlamıyorum, okyasım da yok ama ; hatırladığım kadarıyla söylediklerinin ilk yarısı zaten yazıda olması gerekiyor.Diğer yarısı için teşekkürler.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.