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