1. Niyə tip çevrilməsi lazımdır?
Java — sərt tipləşdirilmiş dildir. Kompüterdə ədəd üçün “qutu” varsa, ora mətn soxmağa cəhd etmək — təxminən çəngəli USB portuna salmağa çalışmaq kimidir. Kompilyator bunu sizə bağışlamayacaq! 😡
Ancaq həyatda biz tez-tez eyni anda müxtəlif məlumat tipləri ilə işləyirik. Məsələn, içində ədəd olan bir sətiriniz var. Elə bu anda çevirmə (yaxud konvertasiya) lazımdır.
Nümunəyə baxaq. Tutaq ki, istifadəçilərin sayını saxlamaq istəyirsiniz:
int a = 1;
int b = "2";
int c = "üç";
Kompilyator dərhal deyəcək: “Məni nə hesab edirsən? Mən sətiri ədədə avtomatik çevirə bilmirəm, sensiz alınmaz. Sətiri açıq şəkildə ədədə gətirmək lazımdır”.
Java-da çevirmənin bir neçə yolu var və hər biri — öz üstünlükləri, mənfi cəhətləri və tipik “tələləri” ilə gəlir.
2. int tipini String tipinə çevirmək
İşimizdə tez-tez ədədin sətir təsvirinə ehtiyac olur: məsələn, ekrana çıxarmaq, fayla yazmaq, şəbəkə ilə ötürmək, mətnlə birləşdirmək və s. Java-da bunun üçün bir neçə üsul var və hər biri müxtəlif situasiyalarda əlverişlidir.
String.valueOf() funksiyası
Bu əsas və ən çox yayılmış üsuldur:
int number = 42;
String str = String.valueOf(number); // str == "42"
String.valueOf() verilən obyektin dəyərini müvafiq sətirə çevirir.
Boş sətirlə konkatenasiya
Köhnə, amma işlək bir üsul:
int number = 42;
String str = "" + number;
Bu yanaşma sadə hallarda sürətli işləyir, lakin kodu oxuyan proqramçı üçün o qədər də aşkar deyil.
3. Sətirə qeyri-aşkar çevrilmə
Yuxarıda qeyd olunduğu kimi, Java yaradıcıları elə ediblər ki, Java-da istənilən dəyişəni, obyektləri, ifadələri String tipinə çevirmək mümkündür.
Bundan əlavə, String tipi hər hansı başqa tiplə toplananda bu çevrilmə avtomatik baş verir. Nümunələr:
int a = 5;
String name = "Anya" + a; // name dəyişəni "Anya5" sətirini saxlayır
int a = 5;
String city = a + "New York" + a; // city dəyişəni "5New York5" sətirini saxlayır
int number = 10;
String code = "Yo";
String message = "Hello! " + number + code; // message dəyişəni "Hello! 10Yo" sətirini saxlayır
Bu üç nümunənin hamısında biz rahatca int və String tiplərini topladıq və nəticə həmişə String oldu.
Nümunələr:
int a = 5;
String name = "1" + a; // name dəyişəni "15" sətirini saxlayır
int a = 5;
String city = a + "9" + a; // city dəyişəni "595" sətirini saxlayır
int number = 10;
String code = "10";
String message = "" + number + code; // message dəyişəni "1010" sətirini saxlayır
Toplama əməliyyatı soldan sağa icra olunur, buna görə nəticə bir qədər gözlənilməz ola bilər. Nümunə:
int a = 5;
String name = a + a + "1" + a; // name dəyişəni "1015" sətirini saxlayır
İcra ardıcıllığı: ((a + a) + "1") + a
4. Sətirin ədədə çevrilməsi
Java-da ədədi sətirə çevirmək üçün onu boş sətirlə toplamaq kifayətdir:
String str = "" + chislo;
Bəs sətiri ədədə çevirmək lazım olanda nə etməli? Elə hər sətiri ədədə çevirmək olmur. Amma sətir yalnız rəqəmlərdən ibarətdirsə, çevirmək mümkündür. Bunun üçün Java-da xüsusi funksiya var.
Komanda belə görünür:
int x = Integer.parseInt(sətir);
Burada int x — bu, tam ədəd tipli x dəyişəninin elanıdır, sətir isə sətir şəklində verilmiş ədəd deməkdir (rəqəmlərdən ibarət sətir).
Nümunələr:
String str = "123";
int number1 = Integer.parseInt(str); // number1 123 ədədini saxlayır;
int number2 = Integer.parseInt("321"); // number2 321 ədədini saxlayır
int number3 = Integer.parseInt("321" + 0); // number3 3210 ədədini saxlayır
int number4 = "321"; // Kompilyasiya olunmayacaq: dəyişən int tipindədir, dəyər isə String tipindədir
Mənfi dəyərlər üçün də bu işləyir: Integer.parseInt() funksiyası olduqca “ağıllıdır”.
GO TO FULL VERSION