CodeGym /Kurslar /JAVA 25 SELF /Məlumat tipləri arasında çevrilmə

Məlumat tipləri arasında çevrilmə

JAVA 25 SELF
Səviyyə , Dərs
Mövcuddur

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 intString tiplərini topladıq və nəticə həmişə String oldu.

Vacibdir! String tipi ilə arifmetik əməliyyatlar etmək olmaz. Hətta sətir tamamilə rəqəmlərdən ibarət olsa belə.

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);
Sətirin ədədə çevrilməsi

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”.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION