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 в Int
- Висновок
Перетворення рядка Java в 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’ .
Запити sql беруть інтерв’ю на запитання та відповіді для нових
Що може бути причиною друку цього виходу?
Відповідь на це полягає в тому, що коли ми робили 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
public static Integer valueOf (String str) кидає NumberFormatException
Це статичний метод, що надається класом Integer, який повертає об'єкт класу Integer, що має значення, яке визначається переданим йому об'єктом String. Тут інтерпретація переданого аргументу здійснюється як підписане десяткове ціле число.
Це те саме, що аргумент, переданий методу parseInt (java.lang.String). Результат - це об’єкт класу Integer, який представляє ціле значення, вказане рядком. Простими словами, метод valueOf () повертає цілий об'єкт, що дорівнює значенню
нове ціле число (Integer.parseInt (str))
Тут параметр ‘str’ - це рядок, що містить цілочисельне представлення, і метод повертає об’єкт 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 () Метод для рядка з провідними нулями
У деяких випадках нам також потрібно робити арифметичні дії над числами з провідними нулями. Давайте подивимося, як перетворити рядок, що має номер із початковими нулями, у значення int за допомогою методу Integer.parseInt ().
Наприклад, у деяких програмних системах фінансового домену стандартним форматом є номер рахунку або сума з провідними нулями. Як, наприклад, у наступній зразковій програмі ми обчислюємо термін погашення суми фіксованого депозиту, використовуючи процентну ставку та фіксовану суму депозиту.
Тут сума вказується з використанням початкових нулів. Ці значення рядків із початковими нулями аналізуються на цілі значення за допомогою 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 коли рядок не містить цілого числа, що піддається аналізу.
Отже, давайте подивимося, в якому сценарії буде застосовано цей виняток.
Давайте подивимось на наступний зразок програми, щоб зрозуміти цей сценарій. Ця програма пропонує користувачеві ввести відсоток набраних результатів та повернути отриману оцінку. Для цього він аналізує значення рядка, введене користувачем, на ціле значення.
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) Використання цілого числа. valueOf () Метод
Метод valueOf () також є статичним методом класу Integer.
Давайте подивимося на підпис методу нижче:
public static int parseInt (String str) кидає NumberFormatException
Це статичний метод, що надається класом Integer, який повертає об'єкт classInteger, що має значення, яке визначається переданим йому об'єктом String. Тут інтерпретація переданого аргументу здійснюється як підписане десяткове ціле число.
Це те саме, що аргумент, переданий методу parseInt (java.lang.String). Результат, що повертається, є об’єктом класу Integer, що представляє ціле значення, вказане рядком. Простими словами, метод valueOf () повертає об’єкт Integer, що дорівнює значенню новий Ціле число (Integer.parseInt (str))
Тут параметр ‘str’ - це рядок, що містить цілочисельне представлення, і метод повертає об’єкт Integer, що містить значення, представлене ‘str’ у методі. Цей метод видає виняток NumberFormatException коли рядок не містить цілого числа, що піддається аналізу.
Давайте розберемося, як використовувати цей метод Integer.valueOf ().
Нижче наведено зразок програми. Цей зразок коду обчислює середню температуру 3 днів тижня. Тут для перетворення температури значення присвоюються як значення рядка у ціле число. Для цього перетворення рядка в ціле число спробуємо використати метод 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
Вправа: Якщо ми можемо перетворити значення рядків, як показано вище, ми можемо спробувати рядки з десятковою комою
Наприклад, замість “-2”, ми можемо спробувати “-2,5”?
Будь ласка, спробуйте наведений вище зразок коду за допомогою методу parseInt () або valueOf (), призначаючи рядку sundayTemperature = “-2,5”;
Підказка: Знову прочитайте підпис методу про значення, що піддаються аналізу.
Відповідь: Якщо ви спробуєте наведений вище зразок програми за допомогою String неділя Температура = “-2,5, він викине NumberFormatException, оскільки значення аргументу String для parseInt () та valueOf () мають значення ASCII плюс‘ + ’або мінус’ - ‘знак та десяткові цифри.
Отже, очевидно, що '.' Недійсне. Окрім того, оскільки ці два методи забезпечуються класом Integer, значення з плаваючою комою, такі як '2.5', не будуть аналізуватися для цих методів.
Таким чином, ми обговорюємо обидва методи класу Integer для перетворення рядка в int у Java.
Поширені запитання про перетворення рядка в Int у Java
Q # 1) Як я можу перетворити String на int у Java?
Відповідь: У Java String в int перетворення можна здійснити двома способами, тобто використовуючи такі методи методів класу Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Як проводиться синтаксичний аналіз цілого числа?
Відповідь: Клас Integer надає статичні методи, які використовуються для синтаксичного аналізу цілочисельного значення для перетворення String у значення int, тобто parseInt () та valueOf ().
Q # 3) Що таке parseInt ()?
Відповідь: parseInt () - це статичний метод, що надається класом Integer, який використовується для перетворення Java String у значення int, де значення String передається як аргумент, а ціле значення повертається методом.
Наприклад, int x = Integer.parseInt (“100”) повертає значення int 100
Q # 4) Що таке синтаксичний розбір в Java?
Відповідь: Синтаксичний розбір в Java - це, в основному, перетворення значення об’єкта одного типу даних на інший тип даних. Наприклад, Integer.valueOf (str) перетворює ‘str’, який є об’єктом типу даних String, в об’єкт типу даних Integer.
Висновок
У цьому підручнику ми дослідили, як перетворити String на int у Java, використовуючи наступні статичні методи Integer класу обгортки:
- Integer.parseInt ()
- Integer.valueOf ()
Ми також розглянули випадок, коли NumberFormatException видається за недійсний рядок числа.
Подальше читання = >> 8 методів перетворення цілого числа в Sting на Java
=> Ознайомтеся з простими навчальними серіями Java тут
Рекомендована література
- Рядок Java із підручником для буфера рядків та побудови рядків
- Підручник із рядків Java | Рядові методи Java на прикладах
- Зворотний рядок Java: Підручник із прикладами програмування
- Рядок Java містить () Підручник із методів із прикладами
- Довжина рядка Java () Метод із прикладами
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Java Integer та клас Java BigInteger з прикладами
- Метод підстроки Java () - Підручник із прикладами