how convert java string int tutorial with examples
Овај водич објашњава начине претварања Јава Стринга у Интегер помоћу метода Интегер.парсеИнт и Интегер.ВалуеОф са примерима кода:
Покриваћемо следеће две статичке методе класе Интегер које се користе за претварање Јава Стринга у вредност инт:
- Интегер.парсеИнт ()
- Интегер.валуеОф ()
=> Овде проверите СВЕ Јава туторијале
Шта ћете научити:
- Конверзија Јава Стринг у Инт
- Закључак
Конверзија Јава Стринг у Инт
Размотримо сценарио, где морамо извршити неку врсту аритметичке операције над бројем, али ова вредност броја је доступна у облику низа. Рецимо да се број преузима као текст који долази из текстуалног поља веб странице или текстуалног дела веб странице.
У таквом сценарију морамо прво претворити овај низ да бисмо дохватили бројеве у целобројном формату.
На пример, размотримо сценарио у којем желимо да додамо 2 броја. Ове вредности се преузимају као текст са ваше веб странице као „300“ и „200“, а ми желимо да извршимо аритметичку операцију над овим бројевима.
Да схватимо ово уз помоћ узорка кода. Овде покушавамо да додамо 2 броја „300“ и „200“ и доделимо их променљивој „ц“. Када исписујемо „ц“, излаз на конзоли очекујемо као „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
Али, у горњем програму, стварни излаз отиснут на конзоли је
„Променљива ц вредност -> 300200“ .
шта је ка и кц у тестирању софтвера
Шта би могао бити разлог за штампање овог излаза?
Одговор на ово је, када смо направили а + б, он користи оператер „+“ као спајање. Дакле, у ц = а + б; Јава спаја низ а и б, тј. Спаја два низа „300“ и „200“ и штампа '300200'.
Дакле, ово се дешава када покушамо да додамо два низа:
Па, шта треба учинити ако желимо да саберемо ова два броја?
За ово прво морамо претворити ове низове у бројеве, а затим извршити аритметичку операцију над тим бројевима. Да бисмо претворили Јава Стринг у инт, можемо користити следеће методе које нуди класа Јава Интегер.
- Интегер.парсеИнт ()
- Интегер.валуеОф ()
Погледајмо ове методе једну по једну у детаље.
# 1) Коришћење методе Јава Интегер.парсеИнт ()
методу парсеИнт () пружа класа Интегер класа. Класа Интегер назива се класа Враппер јер у објект умотава вредност примитивног типа инт.
Погледајмо потпис методе испод:
јавни статички инт парсеИнт (Стринг стр) баца НумберФорматЕкцептион
публиц статиц Интегер валуеОф (Стринг стр) баца НумберФорматЕкцептион
Ово је статичка метода коју пружа класа Интегер која враћа објекат класе Интегер који има вредност која је наведена објектом Стринг који му је прослеђен. Ту се тумачење просљеђеног аргумента врши као потписани децимални цијели број.
То је исто као аргумент прослеђен методи парсеИнт (јава.ланг.Стринг). Резултат је објект класе Интегер који представља целобројну вредност наведену у низу. Једноставним речима, метода валуеОф () враћа Интегер објекат једнак вредности
нови цели број (Интегер.парсеИнт (стр))
Овде је параметар ‘стр’ Стринг који садржи целобројну репрезентацију и метода враћа Интегер објекат који садржи вредност представљену са ‘стр’ у методи.
Овај метод баца изузетак НумберФорматЕкцептион када Стринг не садржи цели број који се може анализирати.
Интегер.парсеИнт () метода за низ без знакова
Покушајмо да разумемо како да користимо ову методу Интегер.парсеИнт () у истом Јава програму који смо видели у нашем ранијем узорку.
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); } }
Ево резултата програма:
Вредност променљиве к -> 300
Променљива и вредност -> 200
Вредност променљиве ц -> 500
Дакле, сада смо у могућности да добијемо жељени излаз, тј. Збир два броја која су представљена у облику текста тако што ћемо их претворити у инт вредност, а затим извршити додатну операцију над тим бројевима.
Интегер.парсеИнт () Метода за низање са знаковима
Као што се види из описа горње методе Интегер.парсеИнт (), првом знаку је дозвољено да буде АСЦИИ минус знак '-' за индикацију негативне вредности или АСЦИИ плус знак '+' за индикацију позитивног вредност. Покушајмо са истим програмом са негативном вредношћу.
Погледајмо пример програма са вредностима и знаковима попут „+“ и „-“.
Употријебит ћемо потписане стринг вриједности као што су „+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); }
Ево резултата програма:
Вредност променљиве к -> 75
Променљива и вредност -> - 75000
Већи број је -> 75
Интегер.парсеИнт () Метода за низ са водећим нулама
У неким случајевима морамо да извршимо и аритметичке операције над бројевима са водећим нулама. Погледајмо како претворити низ са бројем са почетним нулама у вредност инт помоћу методе Интегер.парсеИнт ().
На пример, у неким софтверским системима из домена финансија стандардни је формат да имате број рачуна или износ са водећим нулама. Као, у следећем узорку програма, израчунавамо износ доспећа фиксног износа депозита користећи каматну стопу и фиксни износ депозита.
Овде је износ наведен помоћу водећих нула. Ове вредности низа са водећим нулама рашчлањују се на целобројне вредности помоћу целог броја.
метода парсеИнт () како се види у доњем програму:
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 ИНР
Имате фиксну каматну стопу на депозит -> 6% ИНР
Износ вашег фиксног депозита по доспећу је -> 00010600 ИНР
Дакле, у горенаведеном узорку програма прослеђујемо ’00010000’ методи парсеИнт () и исписујемо вредност.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Вредност ћемо видети на конзоли док имате Фиксни износ депозита -> 10000 ИНР
Овде се приликом конверзије у целобројну вредност водеће нуле уклањају.
Затим смо израчунали фиксни износ доспећа депозита као целобројну вредност „10600“ и форматирали вредност резултата помоћу спецификатора формата% 08 да бисмо преузели водеће нуле.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Када исписујемо вредност форматираног Стринга,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Излаз се штампа на конзоли као Износ вашег фиксног депозита по доспећу је -> 00010600 ИНР
НумберФорматЕкцептион
У опису Интегер.парсеИнт () методу, видели смо и изузетак који је избацила метода парсеИнт () тј. НумберФорматЕкцептион.
Ова метода баца изузетак тј. НумберФорматЕкцептион када Стринг не садржи цели број који се може анализирати.
Па, да видимо сценариј у којем је бачен овај изузетак.
Погледајмо следећи пример програма да бисмо разумели овај сценарио. Овај програм тражи од корисника да унесе проценат бодова и враћа добијену оцену. За то анализира вредност низа коју је корисник унео на целу вредност.
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. Са ИнВалид целобројном вредношћу
Унесите проценат који сте постигли: 85а
Изузетак у нити „маин“ јава.ланг.НумберФорматЕкцептион: За улазни низ: „85а“
на јава.ланг.НумберФорматЕкцептион.форИнпутСтринг (непознат извор)
на јава.ланг.Интегер.парсеИнт (непознати извор)
на јава.ланг.Интегер.парсеИнт (непознати извор)
на цом.софтваретестингхелп.СтрингИнтДемо3.маин (СтрингИнтДемо3.јава:26)
Дакле, као што се види у излазу програма,
# 1) Када корисник унесе важећу вредност, тј. 82 као улаз, излаз који се приказује на конзоли је следећи:
Процентуална вредност је -> 82
Прошли сте с разликовањем
# 2) Када корисник унесе неваљану вредност, тј. 85а као улаз, излаз који се приказује на конзоли је следећи:
Унесите проценат који сте постигли: 85а
Изузетак у нити „маин“ јава.ланг.НумберФорматЕкцептион: За улазни низ: „85а“
на јава.ланг.НумберФорматЕкцептион.форИнпутСтринг (непознат извор)
на јава.ланг.Интегер.парсеИнт (непознати извор)
на јава.ланг.Интегер.парсеИнт (непознати извор)
на цом.софтваретестингхелп.СтрингИнтДемо3.маин (СтрингИнтДемо3.јава:26)
јава.ланг.НумберФорматЕкцептион се баца приликом рашчлањивања 85а у методи Интегер.парсеИнт () јер '85а' има карактер 'а' који није децимална цифра нити АСЦИИ знак '+' или '-' тј. '85а' није подложан рашчлањивању цео број за методу Интегер.парсеИнт ().
Дакле, реч је о једном од начина претварања Јава Стринга у инт. Погледајмо други начин на који Јава претвара Стринг у инт, тј. Користећи методу Интегер.валуеОф ().
# 2) Коришћење целог броја. валуеОф () метода
метода валуеОф () је такође статичка метода класе Интегер.
Погледајмо потпис методе испод:
јавни статички инт парсеИнт (Стринг стр) баца НумберФорматЕкцептион
Ово је статичка метода коју пружа класа Интегер која враћа објекат цлассИнтегер који има вредност која је наведена објектом Стринг који му је прослеђен. Ту се тумачење просљеђеног аргумента врши као потписани децимални цијели број.
То је исто као аргумент прослеђен методи парсеИнт (јава.ланг.Стринг). Добијени резултат је објект класе Интегер који представља целобројну вредност наведену у Стрингу. Једноставним речима, метода валуеОф () враћа објекат Интегер једнак вредности Нова Цео број (Интегер.парсеИнт (стр))
Овде је параметар ‘стр’ Стринг који садржи целобројну репрезентацију и метода враћа Интегер објекат који садржи вредност представљену са ‘стр’ у методи. Овај метод баца изузетак НумберФорматЕкцептион када Стринг не садржи цели број који се може анализирати.
Хајде да разумемо како се користи ова метода Интегер.валуеОф ().
Доље је дат пример програма. Овај узорак кода израчунава просечну температуру од 3 дана у недељи. Овде се за претварање температуре вредности додељују као вредност низа у целобројну вредност. За ову конверзију низа у цео број, покушајмо да користимо методу Интегер.валуеОф ().
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
Вежба: Ако можемо претворити вредности низа као што је горе приказано, можемо покушати са низовима са децималном зарезом
На пример, уместо „-2“, можемо ли покушати са „-2,5“?
Покушајте са горњим узорком кода помоћу методе парсеИнт () или валуеОф () која додељује Стринг сундаиТемпературе = “-2,5”;
Наговестити: Поново прочитајте потпис методе о вредностима које је могуће рашчлањивати.
Одговор: Ако испробате горњи пример програма са Стринг-ом недељаТемпература = “-2,5, бациће НумберФорматЕкцептион као вредности аргумента Стринг за парсеИнт () и валуеОф () су АСЦИИ плус‘ + ’или минус’ - ‘знак и децималне цифре.
Дакле, очигледно „.“ Је неважеће. Такође, како ове две методе пружа класа Интегер, вредности с помичном зарезом попут „2.5“ за ове методе не би могле да се анализирају.
Дакле, разматрамо обе методе класе Интегер за претварање Стринга у инт у Јави.
Честа питања о претварању низа у инт у Јави
П # 1) Како могу претворити Стринг у инт на Јави?
Одговор: У Јава Стринг у инт конверзија се може извршити на два начина, тј. Користећи следеће методе метода класе Интегер:
- Интегер.парсеИнт ()
- Интегер.валуеОф ()
П # 2) Како се рашчлањује цео број?
Одговор: Класа Интегер пружа статичке методе које се користе за рашчлањивање целобројне вредности за претварање Стринга у инт вредност, тј. ПарсеИнт () и валуеОф ().
П # 3) Шта је парсеИнт ()?
Одговор: парсеИнт () је статичка метода коју пружа класа Интегер која се користи за претварање Јава Стринга у инт вриједност, гдје се вриједност Стринг предаје као аргумент, а метода враћа вриједност цијелог броја.
На пример, инт к = Интегер.парсеИнт (“100”) враћа инт вредност 100
П # 4) Шта је рашчлањивање у Јави?
Одговор: Рашчлањивање у Јави је у основи претварање вредности објекта једног типа података у други тип података. На пример, Интегер.валуеОф (стр) претвара „стр“ који је објекат типа података Стринг у објекат типа података Интегер.
Закључак
У овом упутству истражили смо како претворити Стринг у инт у Јави користећи следеће статичке методе класе омотача Интегер:
- Интегер.парсеИнт ()
- Интегер.валуеОф ()
Такође смо покрили случај када се НумберФорматЕкцептион баци због неважећег низа бројева.
Даље читање = >> 8 метода за претварање целог броја у Стинг на Јави
=> Овде истражите једноставну серију Јава тренинга
Препоручено читање
- Јава Стринг са Стринг бафером и Стринг Буилдер Туториал
- Јава Стринг Водич | Јава стринг методе са примерима
- Јава Реверсе Стринг: Водич са примерима програмирања
- Јава Стринг садржи () Водич за методе са примерима
- Метода дужине Јава низа () Метода са примерима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Јава Интегер и Јава БигИнтегер класа са примерима
- Метода Јава подниз () - Водич са примерима