how convert java string int tutorial with examples
Bu eğitici, kod örnekleriyle Integer.parseInt ve Integer.ValueOf yöntemlerini kullanarak Java String'i Tamsayıya dönüştürme yollarını açıklar:
Java String değerini int değerine dönüştürmek için kullanılan aşağıdaki iki Tamsayı sınıfı statik yöntemini ele alacağız:
- Integer.parseInt ()
- Integer.valueOf ()
=> TÜM Java Öğreticilerini Buradan Kontrol Edin
Ne öğreneceksin:
- Java String - Int Conversion
- Sonuç
Java String - Int Conversion
Bir sayı üzerinde bir tür aritmetik işlem gerçekleştirmemiz gereken bir senaryo düşünelim, ancak bu sayı değeri bir Dize şeklinde mevcuttur. Numaranın bir web sayfasının metin alanından veya bir web sayfasının metin alanından gelen bir metin olarak alındığını varsayalım.
Böyle bir senaryoda, önce bu String'i sayıları bir tamsayı biçiminde almak için dönüştürmeliyiz.
Örneğin, 2 sayı eklemek istediğimiz bir senaryo düşünelim. Bu değerler web sayfanızdan '300' ve '200' olarak metin olarak alınır ve bu sayılar üzerinde aritmetik işlem yapmak istiyoruz.
Bunu örnek bir kod yardımıyla anlayalım. Burada '300' ve '200' olmak üzere 2 sayı eklemeye ve bunları 'c' değişkenine atamaya çalışıyoruz. 'C' yi yazdırdığımızda, bir konsoldaki çıktının '500' olmasını bekliyoruz.
package com.softwaretestinghelp; public class StringIntDemo{ public static void main(String() args) { //Assign text '300' to String variable String a='300'; //Assign text '200' to String variable String b='200'; //Add variable value a and b and assign to c String c=a+b; //print variable c System.out.println('Variable c Value --->'+c);//Expected output as 500 } } Here is the program Output : Variable c Value --->300200
Ancak yukarıdaki programda, konsola yazdırılan asıl çıktı
'Değişken c Değeri -> 300200' .
bir jar dosyasını çalıştırmak için neye ihtiyacım var
Bu çıktının yazdırılmasının nedeni ne olabilir?
Bunun cevabı, a + b yaptığımızda, '+' operatörünü birleştirme olarak kullanmaktır. Yani, içinde c = a + b; Java, String a ve b'yi birleştiriyor, yani iki '300' ve '200' dizesini birleştiriyor ve yazdırıyor '300200'.
Yani, iki dizge eklemeye çalıştığımızda bu oluyor:
Peki bu iki sayıyı eklemek istersek ne yapmalı?
Bunun için önce bu dizeleri sayılara çevirip sonra bu sayılar üzerinde aritmetik bir işlem yapmamız gerekiyor. Java String'i int'e dönüştürmek için Java Integer sınıfı tarafından sağlanan aşağıdaki yöntemleri kullanabiliriz.
- Integer.parseInt ()
- Integer.valueOf ()
Gelin bu yöntemleri tek tek ayrıntılı olarak inceleyelim.
# 1) Java Integer.parseInt () Yöntemini Kullanma
parseInt () yöntemi, Integer sınıfı tarafından sağlanır. Integer sınıfı, bir nesnede int ilkel türden bir değer sardığı için Wrapper sınıfı olarak adlandırılır.
Aşağıdaki yöntem imzasına bir göz atalım:
public static int parseInt (String str) NumberFormatException oluşturur
public static Integer valueOf (String str) NumberFormatException oluşturur
Bu, Integer sınıfı tarafından sağlanan ve kendisine iletilen String nesnesi tarafından belirtilen bir değere sahip bir Tamsayı sınıfının bir nesnesini döndüren statik bir yöntemdir. Burada, iletilen argümanın yorumlanması işaretli bir ondalık tamsayı olarak yapılır.
Bu, parseInt (java.lang.String) yöntemine iletilen bağımsız değişkenle aynıdır. Döndürülen sonuç, String tarafından belirtilen tamsayı değerini temsil eden bir Tamsayı sınıfı nesnesidir. Basit bir deyişle, valueOf () yöntemi, değerine eşit bir Integer nesnesi döndürür
yeni Tamsayı (Integer.parseInt (str))
Burada, 'str' parametresi, tamsayı gösterimini içeren bir String'dir ve yöntem, yöntemde 'str' ile temsil edilen değeri tutan bir Tamsayı nesnesi döndürür.
Bu yöntem bir İstisna atar NumberFormatException Dize ayrıştırılabilir bir tamsayı içermediğinde.
İşaretsiz Dize İçin Integer.parseInt () Yöntemi
Bu Integer.parseInt () yöntemini, önceki örneğimizde gördüğümüz Java programında nasıl kullanacağımızı anlamaya çalışalım.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert String to int Java program * using Integer.parseInt() method using String having decimal digits without * ASCII sign i.e. plus + or minus - * */ public class StringIntDemo { public static void main(String() args) { //Assign text '300' to String variable a String a='300'; //Pass a i.e.String “300” as a parameter to parseInt() //to convert String 'a' value to integer //and assign it to int variable x int x=Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '200' to String variable b String b='200'; //Pass b i.e.String “200” as a parameter to parseInt() //to convert String 'b' value to integer //and assign it to int variable y int y=Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Add integer values x and y i.e.z = 300+200 int z=x + y; //convert z to String just by using '+' operator and appending '' String c=z + ''; //Print String value of c System.out.println('Variable c value --->'+c); } }
İşte program Çıktısı:
Değişken x değeri -> 300
Değişken ve değer -> 200
Değişken c değeri -> 500
Böylece, şimdi, istenen çıktıyı, yani metin olarak temsil edilen iki sayının toplamını, bunları int değerine dönüştürerek ve ardından bu sayılar üzerinde ek bir işlem yaparak elde edebiliyoruz.
İşaretli Dize İçin Integer.parseInt () Yöntemi
Yukarıdaki Integer.parseInt () yönteminin açıklamasında görüldüğü gibi, ilk karakterin, negatif bir değerin belirtilmesi için bir ASCII eksi işareti '-' veya bir pozitifin belirtilmesi için bir ASCII artı işareti '+' olmasına izin verilir. değer. Negatif bir değerle aynı programı deneyelim.
Örnek programı '+' ve '-' gibi değerler ve işaretlerle görelim.
'+75' ve '-75000' gibi işaretli Dize değerlerini kullanacağız ve bunları tamsayı olarak ayrıştıracağız ve ardından bu 2 sayı arasında daha büyük bir sayı bulmak için karşılaştıracağız:
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method * on string having decimal digits with ASCII signs i.e. plus + or minus - * @author * */ public class StringIntDemo1 { public static void main(String() args) { //Assign text '75' i.e.value with ‘+’ sign to string variable a String a='+75'; //Pass a i.e.String “+75” as a parameter to parseInt() //to convert string 'a' value to integer //and assign it to int variable x int x =Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '-75000' i.e.value with ‘-’ sign to string variable b String b='-75000'; //Pass b i.e.String “-75000” as a parameter to parseInt() //to convert string 'b' value to integer //and assign it to int variable y int y = Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Get higher value between int x and y using Math class method max() int maxValue = Math.max(x,y); //convert maxValue to string just by using '+' operator and appending '' String c = maxValue + ''; //Print string value of c System.out.println('Larger number is --->'+c); }
İşte program Çıktısı:
Değişken x değeri -> 75
Değişken ve değer -> - 75000
Daha büyük sayı -> 75
Baştaki Sıfırlarla Dize İçin Integer.parseInt () Yöntemi
Bazı durumlarda, başında sıfır olan sayılar üzerinde de aritmetik işlemler yapmamız gerekir. Integer.parseInt () yöntemini kullanarak önde gelen sıfırları olan String'i int değerine nasıl dönüştürebileceğimizi görelim.
Örneğin, bazı finans alanı yazılım sistemlerinde, başında sıfırlar olan bir hesap numarası veya tutarına sahip olmak standart bir biçimdir. Aşağıdaki örnek programda olduğu gibi, sabit mevduat tutarının vade tutarını faiz oranı ve sabit mevduat tutarı kullanarak hesaplıyoruz.
Burada miktar baştaki sıfırlar kullanılarak belirtilir. Başında sıfır bulunan bu String değerleri, Tamsayı kullanılarak tamsayı değerlerine ayrıştırılır.
parseInt () yöntemi aşağıdaki programda görüldüğü gibi:
package com.softwaretestinghelp; /** * This class demonstrates sample program to convert string with leading zeros to int java * using Integer.parseInt() method * * @author * */ public class StringIntDemo2{ public static void main(String() args) { //Assign text '00010000' i.e.value with leading zeros to string variable savingsAmount String fixedDepositAmount='00010000'; //Pass 0010000 i.e.String “0010000” as a parameter to parseInt() //to convert string '0010000' value to integer //and assign it to int variable x int fixedDepositAmountValue = Integer.parseInt(fixedDepositAmount); System.out.println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR'); //Assign text '6' to string variable interestRate String interestRate = '6'; //Pass interestRate i.e.String “6” as a parameter to parseInt() //to convert string 'interestRate' value to integer //and assign it to int variable interestRateVaue int interestRateValue = Integer.parseInt(interestRate); System.out.println('You have Fixed Deposit Interst Rate --->' + interestRateValue+'% INR'); //Calculate Interest Earned in 1 year tenure int interestEarned = fixedDepositAmountValue*interestRateValue*1)/100; //Calcualte Maturity Amount of Fixed Deposit after 1 year int maturityAmountValue = fixedDepositAmountValue + interestEarned; //convert maturityAmount to string using format()method. //Use %08 format specifier to have 8 digits in the number to ensure the leading zeroes String maturityAmount = String.format('%08d', maturityAmountValue); //Print string value of maturityAmount System.out.println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR'); } }
İşte program Çıktısı:
Sabit Depozito tutarınız var -> 10000 INR
Sabit Mevduat Faiz Oranınız var ->% 6 INR
Vadede Sabit Mevduat Tutarınız -> 00010600 INR
Bu nedenle, yukarıdaki örnek programda '00010000' öğesini parseInt () yöntemine geçirip değeri yazdırıyoruz.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Sabit Para Yatırma miktarınız olduğu için konsolda görüntülenen değeri göreceğiz -> 10000 INR
Burada bir tamsayı değerine dönüştürülürken baştaki sıfırlar kaldırılır.
Ardından, sabit mevduat vade tutarını '10600' tamsayı değeri olarak hesapladık ve sonuç değerini% 08 biçim belirleyicisini kullanarak baştaki sıfırları almak için biçimlendirdik.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Biçimlendirilmiş String değerini yazdırdığımızda,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Çıktının konsolda yazdırıldığını görebiliriz. Vadede Sabit Mevduat Tutarınız -> 00010600 INR
NumberFormatException
Açıklamasında Integer.parseInt () yöntem, ayrıca parseInt () yöntemi tarafından atılan bir istisna gördük, yani NumberFormatException.
Bu yöntem bir İstisna, yani NumberFormatException Dize ayrıştırılabilir bir tamsayı içermediğinde.
Öyleyse, bu istisnanın atıldığı senaryoyu görelim.
Bu senaryoyu anlamak için aşağıdaki örnek programa bakalım. Bu program, kullanıcıdan puanlanan yüzdeyi girmesini ister ve alınan Notu geri verir. Bunun için kullanıcı tarafından girilen String değerini bir tamsayı değerine ayrıştırır.
Package com.softwaretestinghelp; import java.util.Scanner; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method having string with non decimal digit and method throwing NumberFormatException * @author * */ public class StringIntDemo3{ private static Scanner scanner; public static void main(String() args){ //Prompt user to enter input using Scanner and here System.in is a standard input stream scanner = new Scanner(System.in); System.out.print('Please Enter the percentage you have scored:'); //Scan the next token of the user input as an int and assign it to variable precentage String percentage = scanner.next(); //Pass percentage String as a parameter to parseInt() //to convert string 'percentage' value to integer //and assign it to int variable precentageValue int percentageValue = Integer.parseInt(percentage); System.out.println('Percentage Value is --->' + percentageValue); //if-else loop to print the grade if (percentageValue>=75) { System.out.println('You have Passed with Distinction'); }else if(percentageValue>60) { System.out.println('You have Passed with Grade A'); }else if(percentageValue>50) { System.out.println('You have Passed with Grade B'); }else if(percentageValue>35) { System.out.println('You have Passed '); }else { System.out.println('Please try again '); } } }
İşte program Çıktısı:
Kullanıcı tarafından girilen 2 farklı giriş değeri ile deneyelim.
1. Geçerli tamsayı değeriyle
Lütfen puan aldığınız yüzdeyi girin: 82
Yüzde Değer -> 82
Üstünlükle Geçtin
2. Geçersiz tamsayı değeri ile
Lütfen attığınız yüzdeyi girin: 85a
'Main' iş parçacığında istisna java.lang.NumberFormatException: Giriş dizesi için: '85a'
java.lang.NumberFormatException.forInputString (Bilinmeyen Kaynak)
at java.lang.Integer.parseInt (Bilinmeyen Kaynak)
at java.lang.Integer.parseInt (Bilinmeyen Kaynak)
com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Program çıktısında görüldüğü gibi,
# 1) Kullanıcı geçerli bir değer, yani giriş olarak 82 girdiğinde, konsolda görüntülenen çıktı aşağıdaki gibidir:
Yüzde Değer -> 82
Üstünlükle Geçtin
# 2) Kullanıcı geçersiz bir değer, yani giriş olarak 85a girdiğinde, konsolda görüntülenen çıktı aşağıdaki gibidir:
Lütfen attığınız yüzdeyi girin: 85a
'Main' iş parçacığında istisna java.lang.NumberFormatException: Giriş dizesi için: '85a'
java.lang.NumberFormatException.forInputString (Bilinmeyen Kaynak)
at java.lang.Integer.parseInt (Bilinmeyen Kaynak)
at java.lang.Integer.parseInt (Bilinmeyen Kaynak)
com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Integer.parseInt () yönteminde 85a ayrıştırılırken java.lang.NumberFormatException atılıyor çünkü '85a' ondalık basamak olmayan 'a' karakterine veya ASCII işaretine '+' veya '-' yani '85a' ayrıştırılabilir değil Integer.parseInt () yöntemi için tamsayı.
Yani, bu Java String'i int'e dönüştürmenin yollarından biriydi. Java'nın String'i int'e, yani Integer.valueOf () yöntemini kullanarak dönüştürdüğü diğer yolu görelim.
# 2) Tamsayı Kullanma. valueOf () Yöntem
valueOf () yöntemi aynı zamanda Integer sınıfı statik yöntemidir.
Aşağıdaki yöntem imzasına bir göz atalım:
public static int parseInt (String str) NumberFormatException oluşturur
Bu, Integer sınıfı tarafından sağlanan ve kendisine iletilen String nesnesi tarafından belirtilen bir değere sahip bir classInteger nesnesini döndüren statik bir yöntemdir. Burada, iletilen argümanın yorumlanması işaretli bir ondalık tamsayı olarak yapılır.
Bu, parseInt (java.lang.String) yöntemine iletilen bağımsız değişkenle aynıdır. Döndürülen sonuç, bir Tamsayı sınıfı nesnesidir, String tarafından belirtilen tamsayı değerini temsil eder. Basit bir deyişle, valueOf () yöntemi, değerine eşit bir Tamsayı nesnesi döndürür yeni Tamsayı (Integer.parseInt (str))
Burada, 'str' parametresi, tamsayı gösterimini içeren bir String'dir ve yöntem, yöntemde 'str' ile temsil edilen değeri tutan bir Tamsayı nesnesi döndürür. Bu yöntem, İstisnayı atar NumberFormatException Dize ayrıştırılabilir bir tamsayı içermediğinde.
Bu Integer.valueOf () yönteminin nasıl kullanılacağını anlayalım.
Aşağıda verilen örnek bir programdır. Bu örnek kod, haftanın 3 gününün ortalama sıcaklığını hesaplar. Burada, sıcaklığı dönüştürmek için değerler bir String değeri olarak bir tamsayı değerine atanır. Bu String'den tamsayıya dönüştürme için Integer.valueOf () yöntemini kullanmayı deneyelim.
Package com.softwaretestinghelp; /** * This class demonstrates a sample program to convert string to integer in Java * using Integer.valueOf() method * on string having decimal digits with ASCII signs i.e.plus + or minus - * @author * */ public class StringIntDemo4 { public static void main(String() args) { //Assign text '-2' i.e.value with ‘-’ sign to string variable sundayTemperature String sundayTemperature= '-2'; //Pass sundayTemperature i.e.String “-2” as a parameter to valueOf() //to convert string 'sundayTemperature' value to integer //and assign it to Integer variable sundayTemperatureValue Integer sundayTemperatureValue = Integer.valueOf(sundayTemperature); System.out.println('Sunday Temperature value --->'+ sundayTemperatureValue); //Assign text '4' to string variable mondayTemperature String mondayTemperature = '4'; //Pass mondayTemperature i.e.String “4” as a parameter to valueOf() //to convert string 'mondayTemperature ' value to integer //and assign it to Integer variable mondayTemperature Integer mondayTemperatureValue = Integer.valueOf(mondayTemperature); System.out.println('Monday Temperature value --->'+ mondayTemperatureValue); //Assign text '+6' i.e.value with ‘+’ sign to string variable //tuesdayTemperature String tuesdayTemperature = '+6'; //Pass tuesdayTemperature i.e.String “+6” as a parameter to valueOf() //to convert string 'tuesdayTemperature' value to integer //and assign it to Integer variable tuesdayTemperature Integer tuesdayTemperatureValue = Integer.valueOf(tuesdayTemperature); System.out.println('Tuesday Temperature value --->'+ tuesdayTemperatureValue); //Calculate Average value of 3 days temperature //avgTEmp = (-2+4+(+6))/3 = 8/3 = 2 Integer averageTemperatureValue = (sundayTemperatureValue+mondayTemperatureValue +tuesdayTemperatureValue)/3; //convert z to string just by using '+' operator and appending '' String averageTemperature = averageTemperatureValue+''; //Print string value of x System.out.println('Average Temperature over 3 days --->'+averageTemperature); } }
İşte program Çıktısı:
Pazar Sıcaklık değeri -> - 2
Pazartesi Sıcaklık değeri -> 4
Salı Sıcaklık değeri -> 6
3 günde Ortalama Sıcaklık -> 2
Egzersiz yapmak: String değerlerini yukarıda görüldüğü gibi dönüştürebilirsek, ondalık noktası olan Dizeleri deneyebiliriz.
Örneğin, '-2' yerine '-2.5' deneyebilir miyiz?
Lütfen yukarıdaki örnek Kodu parseInt () veya valueOf () yöntemi ile Stringe sundayTemperature = “-2.5”;
İpucu: Ayrıştırılabilir değerler hakkında yöntem imzasını tekrar okuyun.
Cevap: Yukarıdaki örnek programı String ile denerseniz Pazar Sıcaklığı = '-2.5, parseInt () için String bağımsız değişkeninin değerleri ve valueOf () ASCII artı' + 'veya eksi' - 'işareti ve ondalık rakamlar olduğundan NumberFormatException atar.
Yani, açıkça '.' Geçersizdir. Ayrıca, bu iki yöntem Integer sınıfı tarafından sağlandığından, '2.5' gibi kayan nokta değerleri bu yöntemler için ayrıştırılamaz değerler olacaktır.
Bu nedenle, Java'da bir String'i int'e dönüştürmek için Integer sınıfının her iki yöntemini de tartıştık.
Java'da Dizeyi Int'e Dönüştürme Hakkında SSS
S # 1) Java'da String'i int'e nasıl dönüştürebilirim?
Cevap: Java'da String'den int'e dönüştürme, iki yol kullanılarak, yani aşağıdaki Tamsayı sınıfı yöntemlerinin yöntemleri kullanılarak yapılabilir:
- Integer.parseInt ()
- Integer.valueOf ()
S # 2) Bir tamsayıyı nasıl ayrıştırırsınız?
Cevap: Tamsayı sınıfı, String'i int değerine, yani parseInt () ve valueOf () 'a dönüştürmek için tamsayı değerini ayrıştırmak için kullanılan statik yöntemler sağlar.
S # 3) parseInt () nedir?
Cevap: parseInt (), Java String değerini int değerine dönüştürmek için kullanılan, String değerinin bir bağımsız değişken olarak iletildiği ve tamsayı değerinin yöntem tarafından döndürüldüğü Integer sınıfı tarafından sağlanan statik bir yöntemdir.
Örneğin, int x = Integer.parseInt ('100'), int 100 değerini döndürür
S # 4) Java'da ayrıştırma nedir?
Cevap: Java'da ayrıştırma, temelde bir veri türündeki bir nesnenin değerinin başka bir veri türüne dönüştürülmesidir. Örneğin, Integer.valueOf (str), String veri türünün bir nesnesi olan 'str' yi bir Tamsayı veri türü nesnesine dönüştürür.
Sonuç
Bu öğreticide, aşağıdaki sarmalayıcı sınıfı Tamsayı statik yöntemlerini kullanarak Java'da String'i int'e nasıl dönüştürebileceğimizi keşfettik:
- Integer.parseInt ()
- Integer.valueOf ()
Ayrıca, NumberFormatException'ın geçersiz sayı String için atıldığı durumu da ele aldık.
Daha fazla okuma = >> Java'da Tamsayıyı Sting'e dönüştürmek için 8 Yöntem
=> Basit Java Eğitim Serisini Buradan Keşfedin
Önerilen Kaynaklar
- String Buffer ve String Builder Eğitimi ile Java String
- Java Dize Eğitimi | Örneklerle Java Dize Yöntemleri
- Java Reverse String: Programlama Örnekleriyle Öğretici
- Java Dizesi () Örneklerle Yöntem Eğitimi içerir
- Java String length () Yöntem Örneklerle
- Yeni Başlayanlar İçin JAVA Eğitimi: 100+ Uygulamalı Java Video Eğitimi
- Java Tamsayı ve Örneklerle Java BigInteger Sınıfı
- Java substring () Yöntemi - Örneklerle Eğitim