how convert java string int tutorial with examples
Този урок обяснява начините за конвертиране на Java String в Integer с помощта на методите Integer.parseInt и Integer.ValueOf с примери за код:
Ще разгледаме следните два статични метода на Integer клас, които се използват за преобразуване на Java String в int стойност:
- Integer.parseInt ()
- Integer.valueOf ()
=> Проверете ВСИЧКИ уроци по Java тук
Какво ще научите:
- Преобразуване на Java String в Int
- Заключение
Преобразуване на Java String в Int
Нека разгледаме сценарий, при който трябва да извършим някакъв вид аритметична операция върху число, но тази стойност на числото е достъпна под формата на низ. Да приемем, че номерът се извлича като текст, който идва от текстовото поле на уеб страница или текстова област на уеб страница.
В такъв сценарий трябва първо да преобразуваме този низ, за да извлечем числа в целочислен формат.
Например, нека разгледаме сценарий, при който искаме да добавим 2 числа. Тези стойности се извличат като текст от вашата уеб страница като „300“ и „200“ и ние искаме да извършим аритметична операция над тези числа.
Нека разберем това с помощта на примерен код. Тук се опитваме да добавим 2 числа „300“ и „200“ и да ги присвоим на променлива „c“. Когато отпечатваме „c“, очакваме изхода на конзола като „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
Но в горната програма действителният изход, отпечатан на конзолата, е
‘Променлива стойност c -> 300200’ .
c ++ как да използвам stringstream
Каква може да е причината за отпечатването на тази продукция?
Отговорът на това е, че когато направихме a + b, той използва оператора ‘+’ като конкатенация. И така, в c = a + b; Java обединява низове a и b, т.е. свързва два низа „300“ и „200“ и отпечатва '300200'.
И така, това се случва, когато се опитваме да добавим два низа:
И така, какво трябва да се направи, ако искаме да добавим тези две числа?
За целта първо трябва да преобразуваме тези низове в числа и след това да извършим аритметична операция над тези числа. За да конвертираме Java String в int, можем да използваме следните методи, предоставени от класа Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Нека разгледаме тези методи един по един в детайли.
# 1) Използване на метод Java Integer.parseInt ()
Методът parseInt () се предоставя от класа Integer class. Класът Integer се нарича клас Wrapper, тъй като обгръща стойност на примитивния тип int в обект.
Нека да разгледаме подписа на метода по-долу:
public static int parseInt (String str) изхвърля NumberFormatException
публично статично Integer valueOf (String str) хвърля NumberFormatException
Това е статичен метод, предоставен от класа Integer, който връща обект от клас Integer със стойност, която е посочена от String обекта, предаден му. Тук интерпретацията на предадения аргумент се извършва като подписано десетично цяло число.
Това е същото като аргумента, предаден на метода parseInt (java.lang.String). Върнатият резултат е обект на клас Integer, който представлява целочислената стойност, посочена от String. С прости думи методът valueOf () връща Integer обект, равен на стойността на
ново цяло число (Integer.parseInt (str))
Тук параметърът ‘str’ е String, съдържащ цяло числото, а методът връща Integer обект, съдържащ стойността, представена от ‘str’ в метода.
Този метод извежда изключение NumberFormatException когато низът не съдържа подлежащо на анализиране цяло число.
Integer.parseInt () Метод за низ без знаци
Нека се опитаме да разберем как да използваме този метод Integer.parseInt () в същата програма на Java, която видяхме в по-ранната ни извадка.
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); } }
Ето изхода на програмата:
Променлива x стойност -> 300
Променлива и стойност -> 200
Променлива стойност c -> 500
И така, сега можем да получим желания изход, т.е.сума от двете числа, които са представени като текст, като ги преобразуваме в int стойност и след това извършим допълнителна операция върху тези числа.
Integer.parseInt () Метод за низ със знаци
Както се вижда в описанието на горния метод Integer.parseInt (), първият знак може да бъде ASCII минус знак '-' за индикация на отрицателна стойност или ASCII плюс знак '+' за индикация на положителна стойност. Нека опитаме същата програма с отрицателна стойност.
Нека видим примерната програма със стойности и знаци като ‘+’ и ‘-‘.
Ще използваме подписаните низови стойности като “+75” и “-75000” и ще ги анализираме на цели числа и след това ще сравним, за да намерим по-голямо число между тези 2 числа:
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); }
Ето изхода на програмата:
Променлива x стойност -> 75
Променлива и стойност -> - 75000
По-голямото число е -> 75
Integer.parseInt () Метод за низ с водещи нули
В някои случаи трябва да имаме аритметични операции и с числата с водещите нули. Нека да видим как да конвертираме String с число с водещи нули в int стойност, използвайки метода Integer.parseInt ().
Например, в някои софтуерни системи на финансови домейни е стандартен формат да има номер на сметка или сума с водещи нули. По същия начин, в следващата примерна програма ние изчисляваме размера на падежа на сумата с фиксиран депозит, като използваме лихвения процент и сумата на фиксирания депозит.
Тук сумата се посочва с помощта на водещи нули. Тези String стойности с водещи нули се анализират до целочислени стойности с помощта на Integer.
метод parseInt (), както се вижда в програмата по-долу:
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'); } }
Ето изхода на програмата:
Имате фиксирана сума на депозита -> 10000 INR
Имате фиксиран лихвен процент -> 6% INR
Сумата на вашия фиксиран депозит при падеж е -> 00010600 INR
И така, в горната примерна програма предаваме ‘00010000’ на метода parseInt () и отпечатваме стойността.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Ще видим стойността, показана на конзолата, тъй като Вие имате сума с фиксиран депозит -> 10000 INR
Тук, докато се преобразува в целочислена стойност, водещите нули се премахват.
След това сме изчислили сумата на падежа с фиксиран депозит като цяло число „10600“ и форматирахме стойността на резултата, използвайки спецификатор на формат% 08, за да извлечем водещи нули.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Когато отпечатваме стойността на форматиран низ,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Можем да видим изхода да се отпечатва на конзолата като Сумата на вашия фиксиран депозит при падеж е -> 00010600 INR
NumberFormatException
В описанието на Integer.parseInt () метод, видяхме и изключение, хвърлено от метода parseInt (), т.е. NumberFormatException.
Този метод хвърля изключение, т.е. NumberFormatException когато низът не съдържа подлежащо на анализиране цяло число.
Така че, нека да видим сценария, в който е хвърлено това изключение.
Нека да видим следната примерна програма, за да разберем този сценарий. Тази програма подканва потребителя да въведе процентния резултат и връща получената оценка. За това той анализира стойността на String, въведена от потребителя, на цяло число.
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 '); } } }
Ето изхода на програмата:
Нека опитаме с 2 различни входни стойности, въведени от потребителя.
1. С валидна целочислена стойност
Моля, въведете процента, който сте вкарали: 82
Процентната стойност е -> 82
Преминахте с отличие
2. С целочислена стойност InValid
Моля, въведете процента, който сте вкарали: 85а
Изключение в нишка “main” java.lang.NumberFormatException: За входен низ: “85a”
на java.lang.NumberFormatException.forInputString (неизвестен източник)
на java.lang.Integer.parseInt (неизвестен източник)
на java.lang.Integer.parseInt (неизвестен източник)
на com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
И така, както се вижда в изхода на програмата,
# 1) Когато потребителят въведе валидна стойност, т.е. 82 като вход, изходът, който се показва на конзолата, е както следва:
Процентната стойност е -> 82
Преминахте с отличие
# 2) Когато потребителят въведе невалидна стойност, т.е. 85a като вход, изходът, който се показва на конзолата, е както следва:
Моля, въведете процента, който сте вкарали: 85а
Изключение в нишка “main” java.lang.NumberFormatException: За входен низ: “85a”
на java.lang.NumberFormatException.forInputString (неизвестен източник)
на java.lang.Integer.parseInt (неизвестен източник)
на java.lang.Integer.parseInt (неизвестен източник)
на com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException се хвърля, докато се анализира 85a в метода Integer.parseInt (), тъй като '85a' има символ 'a', който не е десетична цифра, нито ASCII знак '+' или '-' т.е. '85a' не е разбираем цяло число за метода Integer.parseInt ().
И така, ставаше въпрос за един от начините за конвертиране на Java String в int. Нека да видим другия начин, по който Java преобразува String в int, т.е. използвайки метода Integer.valueOf ().
# 2) Използване на Integer. valueOf () Метод
методът valueOf () също е статичен метод на Integer клас.
Нека да разгледаме подписа на метода по-долу:
public static int parseInt (String str) изхвърля NumberFormatException
Това е статичен метод, предоставен от класа Integer, който връща обект на classInteger със стойност, която е посочена от String обекта, предаден му. Тук интерпретацията на предадения аргумент се извършва като подписано десетично цяло число.
Това е същото като аргумента, предаден на метода parseInt (java.lang.String). Върнатият резултат е обект на клас Integer, който представлява целочислената стойност, посочена от String. С прости думи, методът valueOf () връща Integer обект, равен на стойността на ново Цяло число (Integer.parseInt (str))
Тук параметърът ‘str’ е String, съдържащ цяло числото, а методът връща Integer обект, съдържащ стойността, представена от ‘str’ в метода. Този метод изхвърля изключението NumberFormatException когато низът не съдържа подлежащо на анализиране цяло число.
Нека разберем как да използваме този метод Integer.valueOf ().
По-долу е дадена примерна програма. Този примерен код изчислява средната температура от 3 дни от седмицата. Тук за преобразуване на температурата стойностите се присвояват като стойност на String в целочислена стойност. За това преобразуване на String в цяло число, нека опитаме да използваме метода 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); } }
Ето изхода на програмата:
Стойност на температурата в неделя -> - 2
Понеделник Температурна стойност -> 4
Вторник Температурна стойност -> 6
Средна температура за 3 дни -> 2
Упражнение: Ако можем да преобразуваме String стойности, както се вижда по-горе, можем да опитаме низове с десетична точка
Например, вместо „-2“, можем ли да опитаме с „-2.5“?
Моля, опитайте горния примерен код с метод parseInt () или valueOf (), присвояващ String sundayTemperature = “-2.5”;
Съвет: Прочетете сигнатурата на метода отново за анализираните стойности.
Отговор: Ако опитате горната примерна програма със String неделя Температура = “-2.5, ще изхвърли NumberFormatException като стойностите на аргумента String за parseInt () и valueOf () са ASCII плюс‘ + ’или минус’ - ‘знак и десетични цифри.
Така че, очевидно „.“ Е невалидно. Също така, тъй като тези два метода се предоставят от класа Integer, стойностите с плаваща запетая като '2.5' биха били неразбираеми стойности за тези методи.
По този начин ние обсъждаме и двата метода на класа Integer за преобразуване на String в int в Java.
Често задавани въпроси относно преобразуването на низ в Int в Java
В # 1) Как мога да преобразувам String в int в Java?
Отговор: В Java String to int преобразуването може да се извърши по два начина, т.е.с помощта на следните методи на методите на Integer class:
- Integer.parseInt ()
- Integer.valueOf ()
В # 2) Как анализирате цяло число?
Отговор: Класът Integer предоставя статични методи, които се използват за синтактичен анализ на целочислена стойност за преобразуване на String в int стойност, т.е. parseInt () и valueOf ().
В # 3) Какво е parseInt ()?
Отговор: parseInt () е статичен метод, предоставен от класа Integer, който се използва за преобразуване на Java String в int стойност, където стойността String се предава като аргумент и целочислената стойност се връща от метода.
Например, int x = Integer.parseInt (“100”) връща стойност int 100
В # 4) Какво представлява синтактичният анализ на Java?
Отговор: Разборът в Java е основно преобразуване на стойността на обект от един тип данни в друг тип данни. Например, Integer.valueOf (str) преобразува ‘str’, който е обект от тип данни String, в обект тип данни Integer.
Заключение
В този урок разгледахме как да конвертираме String в int в Java, използвайки следния статичен метод Integer клас на обвивка:
- Integer.parseInt ()
- Integer.valueOf ()
Също така разгледахме случая, когато NumberFormatException се хвърля за невалиден низ от числа.
Допълнително четене = >> 8 метода за конвертиране на Integer в Sting в Java
=> Тук ще разгледате простите серии за обучение по Java
Препоръчително четене
- Java String с урок за String Buffer и String Builder
- Java урок за низове | Низови методи на Java с примери
- Java Reverse String: Урок с примери за програмиране
- Java String съдържа () урок за методи с примери
- Дължина на низа на Java () Метод с примери
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Java Integer и Java BigInteger клас с примери
- Метод на Java substring () - Урок с примери