์ฌ์ฉ์๊ฐ ํค๋ณด๋์์ ์
๋ ฅํ๋ ๊ธฐํธ ์ ๋ณด๋ฅผ ์ซ์๋ก ๋ณํํ๊ฑฐ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ซ์๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. 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' ๋นผ๊ธฐ //์ ์ ์ซ์ ๊ฐ์๋ง ์ ์ฉ๋จ
๋ ์ฝ์ด๋ณด๊ธฐ: |
---|
GO TO FULL VERSION