how convert char int java
V tomto tutoriálu se naučíme různé způsoby převodu hodnot primitivního datového typu char na int v Javě spolu s FAQ a příklady:
Budeme pokrývat použití následujících metod poskytovaných různými třídami Java pro převod znaků na int:
- Implicitní přetypování typu (získávání hodnot ASCII)
- getNumericValue ()
- parseInt () s String.valueOf ()
- Odečtení „0“
=> Chcete-li zobrazit A-Z výukových kurzů Java, podívejte se sem
Co se naučíte:
Převést Char To int v Javě
Java má primitivní datové typy jako int, char, long, float atd. V některých scénářích je nutné provádět operace s číselnými hodnotami, kde jsou v datovém typu char specifikovány hodnoty proměnných.
V takových případech musíme nejprve převést tyto hodnoty znaků na číselné hodnoty, tj. Hodnoty int, a poté na nich provést požadované akce, výpočty.
Například, v některých softwarových systémech je nutné provést určité operace, nebo je třeba učinit určitá rozhodnutí na základě hodnocení zákazníků přijatých ve formuláři zpětné vazby od zákazníka, který je datovým typem znaků.
V takových případech je třeba tyto hodnoty nejprve převést na datový typ int, aby se s těmito hodnotami mohly dále provádět číselné operace. Java poskytuje různé metody pro převod znaků na hodnotu int. Podívejme se na tyto metody podrobně.
# 1) Použití implicitního obsazení typu, tj. Získání hodnoty ASCII postavy
Pokud v Javě přiřadíte menší hodnotu datového typu proměnné kompatibilní proměnné většího datového typu, hodnota se automaticky povýší, tzn. Implicitně získá Typecast do proměnné většího datového typu.
Například, pokud přiřadíme proměnnou typu int proměnné typu long, pak hodnota int automaticky získá typcast na datový typ long.
Implicitní přetypování typu se děje i pro proměnnou datového typu ‚char‘, tj. Když proměnnému datovému typu ‚int‘ přiřadíme následující hodnotu proměnné char, kompilátor ji automaticky převede na hodnotu int.
Například,
char a = „1“;
int b = a;
Zde char ‚a 'dostane implicitně obsadit do datového typu int.
Pokud vytiskneme hodnotu „b“, uvidíte výtisky konzoly „49“. Důvodem je to, že když přiřadíme proměnné char hodnotu ‚a 'int proměnné‚ b', ve skutečnosti načteme hodnotu ASCII ‚1 ', což je‚ 49'.
V následujícím ukázkovém programu Java se podívejme, jak převést znak na int pomocí implicitního obsadění, tj. Získání hodnoty ASCII char proměnné.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Implicit type casting i.e. ASCII values * * @author * */ public class CharIntDemo1 { public static void main(String() args) { // Assign character 'P' to char variable char1 char char1 = 'P'; // Assign character 'p' to char variable char2 char char2 = 'p'; // Assign character '2' to char variable char3 char char3 = '2'; // Assign character '@' to char variable char4 char char4 = '@'; // Assign character char1 to int variable int1 int int1 = char1; // Assign character char2 to int variable int2 int int2 = char2; // Assign character char3 to int variable int3 int int3 = char3; // Assign character char2 to int variable int4 int int4 = char4; //print ASCII int value of char System.out.println('ASCII value of '+char1+' -->'+int1); System.out.println('ASCII value of '+char2+' -->'+int2); System.out.println('ASCII value of '+char3+' -->'+int3); System.out.println('ASCII value of '+char4+' -->'+int4); } }
Zde je program Výstup:
Hodnota ASCII P -> 80
Hodnota ASCII p -> 112
Hodnota ASCII 2 -> 50
Hodnota ASCII @ -> 64
Ve výše uvedeném programu můžeme vidět hodnoty ASCII různých hodnot proměnných char takto:
Hodnota ASCII P -> 80
Hodnota ASCII p -> 112
Rozdíl v hodnotách pro „P“ a „p“ je způsoben tím, že hodnoty ASCII se liší pro velká a malá písmena.
Podobně získáme hodnoty ASCII pro číselné hodnoty a speciální znaky, a to následovně:
Hodnota ASCII 2 -> 50
Hodnota ASCII @ -> 64
# 2) Použití metody Character.getNumericValue ()
Třída Character má metody statického přetížení getNumericValue (). Tato metoda vrací hodnotu datového typu int představovanou zadaným znakem Unicode.
Tady je podpis metody metody getNumericValue () pro datový typ char:
public static int getNumericValue (char ch)
Tato statická metoda přijímá argument datového typu char a vrací hodnotu typu dat int, kterou představuje argument „ch“.
Například, znak „ u216C“ vrací celé číslo s hodnotou 50.
Parametry:
ch: Toto je postava, kterou je třeba převést na int.
Vrací:
Tato metoda vrací číselnou hodnotu „ch“ jako nezápornou hodnotu datového typu int. Tato metoda vrací -2, pokud ‘ch’ má číselnou hodnotu, která není nezáporným celým číslem. Vrátí -1, pokud „ch“ nemá číselnou hodnotu.
Pojďme pochopit použití této metody Character.getNumericValue () k převodu znaku na hodnotu int.
Uvažujme o scénáři, kdy v jednom z bankovních softwarových systémů, kde je pohlaví specifikováno v datovém typu „char“, a na základě genderového kódu je třeba učinit určité rozhodnutí, jako je přiřazení úrokové sazby.
K tomu je třeba kód pohlaví převést z datového typu char na int. Tato konverze se provádí pomocí metody Character.getNumericValue () v níže uvedeném ukázkovém programu.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Character.getNumericValue() * * @author * */ public class CharIntDemo2 { public static void main(String() args) { // Assign character '1' to char variable char1 char gender = '1'; //Send gender as an argument to getNumericValue() method // to parse it to int value int genderCode = Character.getNumericValue(gender); // Expected to print int value 1 System.out.println('genderCode--->'+genderCode); double interestRate = 6.50; double specialInterestRate = 7; switch (genderCode) { case 0 ://genderCode 0 is for Gender Male System.out.println('Welcome ,our bank is offering attractive interest rate on Fixed deposits :'+ interestRate +'%'); break; case 1 ://genderCode 1 is for Gender Female System.out.println(' Welcome, our bank is offering special interest rate on Fixed deposits '+ 'for our women customers:'+specialInterestRate+'% .'+'
'+' Hurry up, this offer is valid for limited period only.'); break; default : System.out.println('Please enter valid gender code '); } } }
Zde je program Výstup:
genderCode—> 1
Vítejte, naše banka nabízí speciální úrokovou sazbu pro pevné vklady pro naše klientky: 7,0%.
Pospěšte si, tato nabídka platí pouze po omezenou dobu.
Takže ve výše uvedeném programu převádíme hodnotu char variable gender na hodnotu int, abychom získali hodnotu int v proměnné genderCode.
char gender = „1“;
int genderCode = Znak. getNumericValue (Rod);
Takže když tiskneme na konzoli, System. ven .println („genderCode ->“ + genderCode); pak vidíme hodnotu int na konzole, jak je uvedeno níže:
genderCode—> 1
Stejná hodnota proměnné je předána smyčce případu přepnutí přepínač (genderCode) pro další rozhodování.
# 3) Použití metody Integer.parseInt () a String.ValueOf ()
Tuto statickou metodu parseInt () poskytuje obálka třídy Integer.
Zde je podpis metody Integer.parseInt () :
public static int parseInt (String str) vyvolá NumberFormatException
Tato metoda analyzuje argument String, považuje String za celé desetinné číslo se znaménkem. Všechny znaky argumentu String musí mít desetinná místa. Jedinou výjimkou je, že první znak může být znak mínus ASCII „-“ a znaménko plus „+“ pro indikaci záporné hodnoty a kladné hodnoty.
Zde je parametrem „str“ řetězec, který má analyzovat reprezentaci int a vrací celočíselnou hodnotu představovanou argumentem v desítkové soustavě. Když String neobsahuje analyzovatelné celé číslo, metoda vyvolá výjimku NumberFormatException
Jak je vidět na podpisu metody pro parseInt ( Tětiva str), argument, který má být předán metodě parseInt (), je datového typu String. Je tedy nutné nejprve převést hodnotu char na String a poté předat tuto hodnotu String metodě parseInt (). K tomu se používá metoda String.valueOf ().
valueOf () je metoda statického přetížení třídy String, která se používá k převodu argumentů primitivních datových typů jako int, float na datový typ String.
public static String valueOf (int i)
Tato statická metoda přijímá argument datového typu int a vrací řetězcovou reprezentaci argumentu int.
Parametry:
i: Toto je celé číslo.
Vrací:
Řetězcová reprezentace argumentu int.
Používáme tedy kombinaci metody Integer.parseInt () a String.valueOf (). Podívejme se na použití těchto metod v následujícím ukázkovém programu. Tento ukázkový program (1) nejprve převede hodnotu zákaznického hodnocení znakového datového typu na celé číslo a (2) poté vytiskne příslušnou zprávu na konzole pomocí příkazu if-else.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Integer.parseInt() and String.valueOf() methods * * @author * */ public class CharIntDemo3 { public static void main(String() args) { // Assign character '7' to char variable customerRatingsCode char customerRatingsCode = '7'; //Send customerRatingsCode as an argument to String.valueOf method //to parse it to String value String customerRatingsStr = String.valueOf(customerRatingsCode); System.out.println('customerRatings String value --->'+customerRatingsStr); // Expected to print String value 7 //Send customerRatingsStr as an argument to Integer.parseInt method //to parse it to int value int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7 if (customerRatings>=7) { System.out.println('Congratulations! Our customer is very happy with our services.'); }else if (customerRatings>=5) { System.out.println('Good , Our customer is satisfied with our services.'); }else if(customerRatings>=0) { System.out.println('Well, you really need to work hard to make our customers happy with our services.'); }else { System.out.println('Please enter valid ratings value.'); } } }
Zde je program Výstup:
customerRatings Hodnota řetězce -> 7
hodnota customerRatings int -> 7
Gratulujeme! Náš zákazník je s našimi službami velmi spokojený.
Ve výše uvedeném ukázkovém kódu jsme použili metodu String.valueOf () k převodu znaku na hodnotu datového typu String.
char customerRatingsCode = '7'; String customerRatingsStr = String.valueOf(customerRatingsCode);
Nyní je tato hodnota řetězce převedena na datový typ int pomocí metody Integer.parseInt () předáním customerRatingsStr jako argument.
int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7
Tato hodnota int hodnocení zákazníků se dále používá v příkazu if-else pro porovnání a tisk požadované zprávy na konzole.
proč moje výchozí brána pokračuje v režimu offline
# 4) Převést Char na int v Javě odečtením „0“
Viděli jsme převádění znaků na int pomocí implicitního typového vysílání. Tím se vrátí hodnota ASCII znaku. Např. Hodnota ASCII „P“ vrací 80 a hodnota ASCII „2“ vrací 50.
Chcete-li však načíst hodnotu int pro „2“ jako 2, je třeba od znaku odečíst hodnotu ASCII znaku „0“. Např. Chcete-li načíst int 2 ze znaku „2“,
int intValue = '2'- '0'; System.out.println('intValue?”+intValue); This will print intValue->2.
Poznámka :To je užitečné pro získání hodnot int pouze pro číselné znaky, tj. 1, 2 atd., A není užitečné pro textové hodnoty jako „a“, „B“ atd., Protože pouze vrátí rozdíl mezi hodnotami ASCII hodnoty „0“ „a ta postava.
Pojďme se podívat na ukázkový program pro použití této metody odečtení hodnoty ASCII od nuly, tj. „0“ od hodnoty ASCII znaku.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using ASCII values by subtracting ASCII value of '0'from ASCII value of char * * @author * */ public class CharIntDemo4 { public static void main(String() args) { // Assign character '0' to char variable char1 char char1 = '0'; // Assign character '1' to char variable char2 char char2 = '1'; // Assign character '7' to char variable char3 char char3 = '7'; // Assign character 'a' to char variable char4 char char4 = 'a'; //Get ASCII value of '0' int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0); // Get int value by finding the difference of the ASCII value of char1 and ASCII value of 0. int int1 = char1 - '0'; // Get int value by finding the difference of the ASCII value of char2 and ASCII value of 0. int int2 = char2 - '0'; // Get int value by finding the difference of the ASCII value of char3 and ASCII value of 0. int int3 = char3 - '0'; // Get int value by finding the difference of the ASCII value of char4 and ASCII value of 0. int int4 = char4 - '0'; //print ASCII int value of char System.out.println('Integer value of '+char1+' -->'+int1); System.out.println('Integer value of '+char2+' -->'+int2); System.out.println('Integer value of '+char3+' -->'+int3); System.out.println('Integer value of '+char4+' -->'+int4); } }
Zde je program Výstup:
Hodnota ASCII 0 -> 48
Hodnota ASCII 1 -> 49
Hodnota celého čísla 0 -> 0
Hodnota celého čísla 1 -> 1
Hodnota celého čísla 7 -> 7
Celočíselná hodnota a -> 49
Pokud ve výše uvedeném programu přiřadíme znaku „0“ a „1“ hodnotě datového typu int, dostaneme hodnoty ASCII těchto znaků kvůli implicitnímu převodu. Když tedy tiskneme tyto hodnoty, jak je vidět v níže uvedených prohlášeních:
int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0);
Výstup dostaneme jako:
Hodnota ASCII 0 -> 48
Hodnota ASCII 1 -> 49
Abychom tedy získali celočíselnou hodnotu představující stejnou hodnotu jako char, odečítáme hodnotu ASCII „0“ od znaků představujících číselné hodnoty.
int int2 = char2 - '0'; .
Zde odečítáme hodnoty ASCII „0“ od hodnoty „1“ ASCII.
tj. 49-48 = 1. Když tedy tiskneme na konzolu char2
System.out.println („Celočíselná hodnota„ + char2 + “->„ + int2);
Získáváme výstup jako:
Hodnota celého čísla 1 -> 1
Tím jsme pokryli různé způsoby převodu znaku Java na celočíselnou hodnotu pomocí ukázkových programů. Chcete-li tedy převést znak na int v jazyce Java, můžete ve svém programu Java použít kteroukoli z metod uvedených ve výše uvedených ukázkových kódech.
Nyní se podívejme na některé často kladené otázky týkající se převodu znaku Java na int.
Časté dotazy týkající se Char To Int Java
Otázka č. 1) Jak převést char na int?
Odpovědět:
V Javě lze char převést na hodnotu int pomocí následujících metod:
- Implicitní přetypování typu (získávání hodnot ASCII)
- Character.getNumericValue ()
- Integer.parseInt () s String.valueOf ()
- Odečtení „0“
Otázka 2) Co je znak v Javě?
Odpovědět: Datový typ char je primitivní datový typ Java, který má jeden 16bitový znak Unicode. Hodnota je přiřazena jako jeden znak uzavřený jednoduchou uvozovkou „“. Například, char a = „A“ nebo char a = „1“ atd.
Otázka č. 3) Jak inicializujete znak v Javě?
Odpovědět: Proměnná char se inicializuje přiřazením jediného znaku uzavřeného do uvozovek, tj. „“. Například, char x = „b“, char x = „@“, char x = „3“ atd.
Otázka č. 4) Jaká je int hodnota char A?
Odpovědět: Pokud je proměnné int přiřazeno char ‚A ', pak bude char implicitně povýšen na int a pokud je hodnota vytištěna, vrátí ASCII hodnotu znaku‚ A ‘, což je 65.
Například,
int x= 'A'; System.out.println(x);
Tím se na konzole vytiskne 65.
Závěr
V tomto kurzu jsme viděli následující způsoby, jak převést hodnoty datového typu Java char na int.
- Implicitní přetypování typu (získávání hodnot ASCII)
- Character.getNumericValue ()
- Integer.parseInt () s String.valueOf ()
- Odečtení „0“
Každý z těchto způsobů jsme podrobně popsali a demonstrovali použití každé metody pomocí ukázkového programu Java.
=> Zkontrolujte VŠECHNY výukové programy Java zde
Doporučené čtení
- Celé číslo Java a třída Java BigInteger s příklady
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- TreeMap v Javě - výuka s příklady Java TreeMap
- Jak převést řetězec Java na Int - výuka s příklady
- Výukový program Java Float s příklady programování
- Prohlášení o přerušení Java - návod s příklady
- Java Enum: Výukový program Java Enumeration s příklady
- Metoda délky Java String () S příklady