how convert java string int tutorial with examples
W tym samouczku wyjaśniono sposoby konwersji Java String na Integer przy użyciu metod Integer.parseInt i Integer.ValueOf z przykładami kodu:
Omówimy następujące dwie metody statyczne klasy Integer, które są używane do konwersji Java String na wartość int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Sprawdź WSZYSTKIE samouczki Java tutaj
Czego się nauczysz:
- Konwersja ciągu Java na Int
- Wniosek
Konwersja ciągu Java na Int
Rozważmy scenariusz, w którym musimy wykonać jakąś operację arytmetyczną na liczbie, ale ta wartość liczbowa jest dostępna w postaci ciągu. Powiedzmy, że numer jest pobierany jako tekst pochodzący z pola tekstowego strony internetowej lub obszaru tekstowego strony internetowej.
W takim scenariuszu musimy najpierw przekonwertować ten ciąg, aby pobrać liczby w formacie całkowitoliczbowym.
Na przykład, rozważmy scenariusz, w którym chcemy dodać 2 liczby. Te wartości są pobierane jako tekst z Twojej strony internetowej jako „300” i „200” i chcemy wykonać na nich operację arytmetyczną.
Zrozummy to za pomocą przykładowego kodu. Tutaj próbujemy dodać 2 liczby „300” i „200” i przypisać je do zmiennej „c”. Kiedy wypisujemy „c”, spodziewamy się, że wynik na konsoli to „500”.
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
Ale w powyższym programie rzeczywisty wynik wydrukowany na konsoli to
„Zmienna wartość c -> 300200” .
to klucz bezpieczeństwa sieci taki sam jak hasło wifi
Jaki może być powód drukowania tego wyniku?
Odpowiedź na to pytanie brzmi: kiedy zrobiliśmy a + b, użyliśmy operatora „+” jako konkatenacji. Więc w c = a + b; Java łączy ciąg a i b, tj. Łączy dwa ciągi „300” i „200” i wypisuje „300200”.
Tak więc dzieje się tak, gdy próbujemy dodać dwa ciągi:
Co więc należy zrobić, jeśli chcemy dodać te dwie liczby?
W tym celu musimy najpierw przekonwertować te ciągi na liczby, a następnie wykonać operację arytmetyczną na tych liczbach. Aby przekonwertować Java String na int, możemy użyć następujących metod udostępnionych przez klasę Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Zobaczmy szczegółowo te metody.
# 1) Korzystanie z metody Java Integer.parseInt ()
parseInt () jest udostępniana przez klasę Integer. Klasa Integer jest nazywana klasą Wrapper, ponieważ opakowuje w obiekt wartość typu pierwotnego int.
Spójrzmy na podpis metody poniżej:
public static int parseInt (String str) zgłasza wyjątek NumberFormatException
public static Integer valueOf (String str) zgłasza wyjątek NumberFormatException
Jest to metoda statyczna dostarczana przez klasę Integer, która zwraca obiekt klasy Integer posiadający wartość określoną przez przekazany do niej obiekt String. Tutaj interpretacja przekazanego argumentu jest wykonywana jako liczba całkowita dziesiętna ze znakiem.
To jest to samo, co argument przekazany do metody parseInt (java.lang.String). Zwrócony wynik jest obiektem klasy Integer, który reprezentuje wartość całkowitą określoną przez String. W prostych słowach metoda valueOf () zwraca obiekt Integer równy wartości
nowy Integer (Integer.parseInt (str))
Tutaj parametr „str” jest ciągiem zawierającym reprezentację w postaci liczby całkowitej, a metoda zwraca obiekt Integer zawierający wartość reprezentowaną przez „str” w metodzie.
Ta metoda zgłasza wyjątek NumberFormatException gdy String nie zawiera parsowalnej liczby całkowitej.
Metoda Integer.parseInt () dla ciągu znaków bez znaków
Spróbujmy zrozumieć, jak używać tej metody Integer.parseInt () w tym samym programie Java, który widzieliśmy we wcześniejszym przykładzie.
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); } }
Oto wyjście programu:
Zmienna wartość x -> 300
Zmienna i wartość -> 200
Zmienna wartość c -> 500
Więc teraz jesteśmy w stanie uzyskać pożądany wynik, tj. Sumę dwóch liczb, które są reprezentowane jako tekst, konwertując je na wartość int, a następnie wykonując dodatkową operację na tych liczbach.
Metoda Integer.parseInt () dla ciągu znaków ze znakami
Jak widać w opisie powyższej metody Integer.parseInt (), pierwszym znakiem może być znak minus ASCII „-” dla wskazania wartości ujemnej lub znak plus ASCII „+” dla wskazania dodatniego wartość. Wypróbujmy ten sam program z wartością ujemną.
Zobaczmy przykładowy program z wartościami i znakami, takimi jak „+” i „-”.
Użyjemy wartości typu String ze znakiem, takich jak „+75” i „-75000”, i przeanalizujemy je na liczbę całkowitą, a następnie porównamy, aby znaleźć większą liczbę między tymi dwoma liczbami:
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); }
Oto wyjście programu:
Zmienna wartość x -> 75
Zmienna i wartość -> - 75000
Większa liczba to -> 75
Metoda Integer.parseInt () dla łańcucha z zerami wiodącymi
W niektórych przypadkach musimy również wykonać operacje arytmetyczne na liczbach z zerami wiodącymi. Zobaczmy, jak przekonwertować ciąg znaków zawierający liczbę z zerami na początku na wartość int przy użyciu metody Integer.parseInt ().
Na przykład, w niektórych systemach oprogramowania z dziedziny finansów standardowym formatem jest posiadanie numeru konta lub kwoty z zerami na początku. Podobnie jak w poniższym przykładowym programie, obliczamy kwotę zapadalności stałej kwoty depozytu przy użyciu stopy procentowej i stałej kwoty depozytu.
W tym przypadku kwota jest określana za pomocą zer wiodących. Te wartości typu String z wiodącymi zerami są analizowane na wartości całkowite przy użyciu funkcji Integer.
parseInt (), jak widać w poniższym programie:
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'); } }
Oto wyjście programu:
Masz stałą kwotę depozytu -> 10000 INR
Masz stałą stopę procentową depozytu -> 6% INR
Twoja stała kwota depozytu w dniu zapadalności wynosi -> 00010600 INR
Tak więc w powyższym przykładowym programie przekazujemy „00010000” do metody parseInt () i wypisujemy wartość.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Wartość zostanie wyświetlona na konsoli, ponieważ masz stałą kwotę depozytu -> 10000 INR
Tutaj, podczas konwersji na wartość całkowitą, zera wiodące są usuwane.
Następnie obliczyliśmy kwotę depozytu o ustalonym terminie zapadalności jako wartość całkowitą „10600” i sformatowaliśmy wartość wyniku przy użyciu specyfikatora formatu% 08 w celu pobrania zer wiodących.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Kiedy drukujemy wartość sformatowanego ciągu,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Możemy zobaczyć, jak wynik jest drukowany na konsoli jako Twoja stała kwota depozytu w dniu zapadalności wynosi -> 00010600 INR
NumberFormatException
W opisie Integer.parseInt () widzieliśmy również wyjątek zgłoszony przez metodę parseInt (), tj. NumberFormatException.
Ta metoda zgłasza wyjątek, tj. NumberFormatException gdy String nie zawiera parsowalnej liczby całkowitej.
Zobaczmy więc scenariusz, w którym ten wyjątek jest zgłaszany.
Zobaczmy następujący przykładowy program, aby zrozumieć ten scenariusz. Ten program zachęca użytkownika do wprowadzenia uzyskanej wartości procentowej i zwraca otrzymaną ocenę. W tym celu analizuje wartość String wprowadzoną przez użytkownika na wartość całkowitą.
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 '); } } }
Oto wyjście programu:
Spróbujmy z 2 różnymi wartościami wejściowymi wprowadzonymi przez użytkownika.
1. Z poprawną wartością całkowitą
Wprowadź uzyskany procent: 82
Wartość procentowa to -> 82
Zdałeś z wyróżnieniem
2. Z niepoprawną wartością całkowitą
Wprowadź uzyskany procent: 85a
Wyjątek w wątku „main” java.lang.NumberFormatException: dla ciągu wejściowego: „85a”
w java.lang.NumberFormatException.forInputString (nieznane źródło)
at java.lang.Integer.parseInt (nieznane źródło)
at java.lang.Integer.parseInt (nieznane źródło)
w com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Tak więc, jak widać w wynikach programu,
# 1) Gdy użytkownik wprowadzi prawidłową wartość, tj. 82 jako dane wejściowe, dane wyjściowe wyświetlane na konsoli są następujące:
Wartość procentowa to -> 82
Zdałeś z wyróżnieniem
# 2) Gdy użytkownik wprowadzi nieprawidłową wartość, tj. 85a jako wejście, dane wyjściowe wyświetlane na konsoli są następujące:
Wprowadź uzyskany procent: 85a
Wyjątek w wątku „main” java.lang.NumberFormatException: dla ciągu wejściowego: „85a”
w java.lang.NumberFormatException.forInputString (nieznane źródło)
at java.lang.Integer.parseInt (nieznane źródło)
at java.lang.Integer.parseInt (nieznane źródło)
w com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException jest generowany podczas analizowania 85a w metodzie Integer.parseInt (), ponieważ „85a” ma znak „a”, który nie jest cyfrą dziesiętną ani znakiem ASCII „+” lub „-”, czyli „85a” nie jest parsowalną integer dla metody Integer.parseInt ().
Tak więc chodziło o jeden ze sposobów konwersji Java String na int. Zobaczmy inny sposób, w jaki Java konwertuje ciąg znaków na int, tj. Przy użyciu metody Integer.valueOf ().
# 2) Korzystanie z liczby całkowitej. valueOf () Metoda
valueOf () jest również metodą statyczną klasy Integer.
Spójrzmy na podpis metody poniżej:
public static int parseInt (String str) zgłasza wyjątek NumberFormatException
Jest to metoda statyczna udostępniana przez klasę Integer, która zwraca obiekt klasy classInteger mający wartość określoną przez przekazany do niej obiekt String. Tutaj interpretacja przekazanego argumentu jest wykonywana jako liczba całkowita dziesiętna ze znakiem.
To jest to samo, co argument przekazany do metody parseInt (java.lang.String). Zwrócony wynik jest obiektem klasy Integer, który reprezentuje wartość całkowitą określoną przez String. Mówiąc prościej, metoda valueOf () zwraca obiekt Integer równy wartości Nowy Integer (Integer.parseInt (str))
Tutaj parametr „str” jest ciągiem zawierającym reprezentację w postaci liczby całkowitej, a metoda zwraca obiekt Integer zawierający wartość reprezentowaną przez „str” w metodzie. Ta metoda zgłasza wyjątek NumberFormatException gdy String nie zawiera parsowalnej liczby całkowitej.
Zobaczmy, jak używać tej metody Integer.valueOf ().
Poniżej podano przykładowy program. Ten przykładowy kod oblicza średnią temperaturę z 3 dni tygodnia. Tutaj, aby przekonwertować temperaturę, wartości są przypisywane jako wartość typu String na wartość całkowitą. W przypadku konwersji typu String na liczbę całkowitą spróbujmy użyć metody Integer.valueOf ().
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); } }
Oto wyjście programu:
Niedziela Wartość temperatury -> - 2
Poniedziałek Wartość temperatury -> 4
Wtorek Wartość temperatury -> 6
Średnia temperatura w ciągu 3 dni -> 2
Ćwiczenie: Jeśli możemy przekonwertować wartości typu String, jak pokazano powyżej, możemy wypróbować ciągi z kropką dziesiętną
Na przykład, zamiast „-2”, czy możemy spróbować „-2,5”?
Wypróbuj powyższy przykładowy kod z metodą parseInt () lub valueOf () przypisującą ciąg sundayTemperature = „-2,5”;
Wskazówka: Przeczytaj ponownie podpis metody o wartościach, które można przeanalizować.
Odpowiedź: Jeśli wypróbujesz powyższy przykładowy program z String niedzielaTemperatura = „-2,5, spowoduje zgłoszenie wyjątku NumberFormatException jako wartości argumentu String funkcji parseInt () i valueOf () to ASCII plus„ + ”lub minus” - „znak i cyfry dziesiętne.
Zatem oczywiście „.” Jest nieważne. Ponadto, ponieważ te dwie metody są dostarczane przez klasę Integer, wartości zmiennoprzecinkowe, takie jak „2,5”, byłyby wartościami niepodzielnymi dla tych metod.
W związku z tym omówiliśmy obie metody klasy Integer służące do konwersji ciągu znaków na int w Javie.
Często zadawane pytania dotyczące konwersji ciągu znaków na int w języku Java
Pytanie 1) Jak przekonwertować ciąg znaków na int w Javie?
Odpowiedź: W Javie konwersję String na int można przeprowadzić na dwa sposoby, tj. Wykorzystując następujące metody metod klasy Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Jak analizować liczbę całkowitą?
Odpowiedź: Klasa Integer udostępnia metody statyczne, które są używane do analizowania wartości całkowitej w celu konwersji ciągu znaków na wartość int, tj. ParseInt () i valueOf ().
P # 3) Co to jest parseInt ()?
Odpowiedź: parseInt () to statyczna metoda dostarczana przez klasę Integer, która służy do konwersji Java String na wartość int, w której wartość String jest przekazywana jako argument, a wartość całkowita jest zwracana przez metodę.
Na przykład, int x = Integer.parseInt („100”) zwraca wartość int 100
Pytanie 4) Co to jest parsowanie w Javie?
Odpowiedź: Parsowanie w Javie to w zasadzie konwersja wartości obiektu jednego typu danych na inny typ danych. Na przykład, Integer.valueOf (str) konwertuje „str”, który jest obiektem typu danych String, na obiekt typu danych Integer.
Wniosek
W tym samouczku zbadaliśmy, jak przekonwertować ciąg znaków na int w Javie przy użyciu następującej klasy opakowania Integer statyczne metody:
- Integer.parseInt ()
- Integer.valueOf ()
Omówiliśmy również przypadek, w którym NumberFormatException zostaje wyrzucony dla nieprawidłowego ciągu liczbowego.
Dalsza lektura = >> 8 Metody konwersji liczb całkowitych na Sting w Javie
=> Zapoznaj się z serią prostych szkoleń dotyczących języka Java
rekomendowane lektury
- Ciąg w języku Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Samouczek dotyczący ciągów Java | Metody ciągów Java z przykładami
- Odwrócony ciąg Java: samouczek z przykładami programowania
- Java String zawiera () Samouczek dotyczący metody z przykładami
- Metoda Java String length () z przykładami
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- Klasa Java Integer i Java BigInteger z przykładami
- Metoda substring () Java - samouczek z przykładami