CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Char๋ฅผ Int๋กœ ๋ณ€ํ™˜
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Char๋ฅผ Int๋กœ ๋ณ€ํ™˜

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅํ•˜๋Š” ๊ธฐํ˜ธ ์ •๋ณด๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆซ์ž๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Java์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” char๋ฅผ int ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์•”์‹œ์  ์œ ํ˜• ์บ์ŠคํŒ…

์œ ํ˜• ์บ์ŠคํŒ…์€ ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์œ ํ˜• ์บ์ŠคํŒ…์€ ์œ ํ˜•์— ๋”ฐ๋ผ ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜•์€ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Java์—๋Š” ๋ช…์‹œ์  ๋ฐ ์•”์‹œ์ ์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜• ๋ณ€ํ™˜ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Implicit์€ ๋ณ€์ˆ˜๋ฅผ "larger"์—์„œ "smaller" ์œ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: int ์—์„œ long ์œผ๋กœ ).). char ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋ฅผ int ๋ฐ์ดํ„ฐ ์œ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ๋Œ€๋ถ€๋ถ„ ASCII ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ๋ฐฉ์‹์œผ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ ๋˜๋Š” ๊ธฐํ˜ธ์—๋Š” ํ•ด๋‹นํ•˜๋Š” ๊ณ ์œ ํ•œ ์ •์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•ŒํŒŒ๋ฒณ 'A'์˜ ASCII ์ฝ”๋“œ๋Š” 65์ž…๋‹ˆ๋‹ค. ์œ ํ˜• ์บ์ŠคํŒ…์„ ํ†ตํ•ด ๋ฌธ์ž ๊ฐ’์„ ํ•ด๋‹น ASCII ์ •์ˆ˜ ์ฝ”๋“œ๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์œ ํ˜• ์บ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜๋Š” Java char to int ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

Java char to int ์˜ˆ์ œ(typeCasting ์‚ฌ์šฉ)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
'A'์˜ ASCII ๊ฐ’์€ 65 'a'์˜ ASCII ๊ฐ’์€ 97

๋ช…์‹œ์  ์œ ํ˜• ์บ์ŠคํŒ…

์œ„์—์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ char to int ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ char๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ 2๋ฐ”์ดํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  int๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ 4๋ฐ”์ดํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, int ์œ ํ˜•์ด "๋” ํฝ๋‹ˆ๋‹ค". ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฐ์Šต์œผ๋กœ char ๋ณ€์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์ˆ˜๋กœ ์บ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—์„œ๋Š” ๊ด„ํ˜ธ ์•ˆ์— (int)๋ฅผ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
'A'์˜ ASCII ๊ฐ’์€ 65์ž…๋‹ˆ๋‹ค.

getNumericValue() ์‚ฌ์šฉ

getNumericValue()๋Š” ์œ ํ˜• ์บ์ŠคํŒ…๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ASCII ํ…Œ์ด๋ธ”์„ ๋”ฐ๋ฅด๋Š” ๋Œ€์‹  ์œ ๋‹ˆ์ฝ”๋“œ ์ธ์ฝ”๋”ฉ ํ‘œ์ค€์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ASCII๋Š” ๋ผํ‹ด ๋ฌธ์ž(์ผ๋ถ€ ๊ตญ๊ฐ€ ์•ŒํŒŒ๋ฒณ ๊ธฐํ˜ธ ํฌํ•จ), ์ˆซ์ž, ๊ตฌ๋‘์  ๋ฐ ์ œ์–ด ๋ฌธ์ž์™€ ๊ฐ™์€ ํŠน์ • ๊ธฐํ˜ธ ๋ฐ ๋ฌธ์ž ์ง‘ํ•ฉ๋งŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ์—๋Š” ์ „ ์„ธ๊ณ„ ๋ชจ๋“  ์–ธ์–ด์˜ ๋ฌธ์ž์™€ ๊ธฐํ˜ธ๊ฐ€ ํฌํ•จ๋œ ๋ฐฑ๋งŒ ๊ฐœ ์ด์ƒ์˜ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ A์˜ ๊ฐ’์€ \u0041์ด๋ฉฐ ์ด๋Š” ์ˆซ์ž ๊ฐ’ 10๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์— ์ˆซ์ž ๊ฐ’์ด ์—†์œผ๋ฉด ์ด ๋ฉ”์„œ๋“œ๋Š” -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
'7'์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์€ 7์ž…๋‹ˆ๋‹ค. 'A'์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค. '*'์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์€ -1์ž…๋‹ˆ๋‹ค.

ParseInt() ์‚ฌ์šฉ

ParseInt()๋Š” char๋ฅผ int๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ float, double ๋ฐ long๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ˆซ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜• ๊ฐ„์˜ ๊ต์ฐจ ๋ณ€ํ™˜์—๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ParseInt()์—๋Š” ์ตœ์†Œ ํ•˜๋‚˜์˜ ์ธ์ˆ˜์™€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ธ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ๋ณ€ํ™˜ํ•  ๊ฐ’์˜ ๋ณ€์ˆ˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” 10์ง„์ˆ˜, 8์ง„์ˆ˜, 16์ง„์ˆ˜ ๋“ฑ์˜ ๊ธฐ๋ณธ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ˆซ์ž ์ฒด๊ณ„๋ฅผ ์—ผ๋‘์— ๋‘๊ณ  ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๋ณ€ํ™˜ํ•˜๋Š” ParseInt() ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด "์ˆซ์ž"๋ฅผ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ์˜ ์„ ํƒ์ž…๋‹ˆ๋‹ค. โ€ Java์—์„œ char์„ int๋กœ. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ผ๋‘์— ๋‘์–ด์•ผ ํ•  ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์‹ฑ์ธํŠธ()๋ฉ”์„œ๋“œ๋Š” String ์ธ์ˆ˜๋งŒ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ๋จผ์ € char์„ String์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค( String.valueOf ์‚ฌ์šฉ ). char ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ์ €์žฅ๋œ ์ˆซ์ž ๊ฐ’์„ ์ œ์™ธํ•˜๊ณ ๋Š” parseInt()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ๊ธฐํƒ€ ๊ธฐํ˜ธ๋ฅผ ๋ณ€ํ™˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ž๋ฐ” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
7
parseInt ton ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค.

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์Šค๋ ˆ๋“œ "main" java.lang.NumberFormatException์˜ ์˜ˆ์™ธ: ์ž…๋ ฅ ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ: "q" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) at java.base/java.lang.Integer.parseInt (Integer.java:652) at java.base/java.lang.Integer.parseInt(Integer.java:770) at charToInt.ValueOf.main(ValueOf.java:6)

๋นผ๊ธฐ '0'

๋ฌธ์ž๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฌธ์ž์—์„œ ๋ฌธ์ž "0"์˜ ASCII ๊ฐ’์„ ๋บ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž "7"์—์„œ int 7์„ ์–ป์œผ๋ ค๋ฉด:

int intValue = '7'-' 0 ';
์ด๊ฒƒ์€ ์ •์ˆ˜ ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ๋งŒ int ๊ฐ’์„ ์–ป๋Š” ๋ฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ์˜ˆ๋ฅผ ๋“ค์–ด 'A'์—์„œ '0'์„ ๋นผ๋ฉด ๋ฉ”์„œ๋“œ๋Š” ๋‹จ์ˆœํžˆ ASCII ์ฝ”๋“œ 0๊ณผ ๋ฌธ์ž A ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
7 7 A 17 * -6

๊ฒฐ๋ก 

Java์—์„œ char๋ฅผ int๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ์•”์‹œ์  ์œ ํ˜• ์บ์ŠคํŒ… //ASCII ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
  • Character.getNumericValue()
  • Integer.parseInt() // String.valueOf()) ์™€ ์Œ
  • '0' ๋นผ๊ธฐ //์ •์ˆ˜ ์ˆซ์ž ๊ฐ’์—๋งŒ ์ ์šฉ๋จ
๋ช…์‹œ์  ์œ ํ˜• ์บ์ŠคํŒ…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ค‘๋ณต ์ž‘์—…์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ Java์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION