[java] Java에서 문자를 ASCII 숫자 값으로 변환

나는 String name = "admin";
그때String char = name.substring(0,1); //char="a"

charASCII 값 (97) 으로 변환하고 싶습니다 .Java에서 어떻게 할 수 있습니까?



답변

매우 간단합니다. 그냥 캐스팅 charint로서 int.

char character = 'a';
int ascii = (int) character;

귀하의 경우 먼저 문자열에서 특정 문자를 가져 와서 캐스팅해야합니다.

char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.

캐스트는 명시 적으로 필요하지 않지만 가독성을 향상시킵니다.

int ascii = character; // Even this will do the trick.


답변

다른 접근법

    String s = "admin";
    byte[] bytes = s.getBytes("US-ASCII");

bytes[0] 는 전체 배열에서 다른 문자의 ASCII를 나타냅니다.


답변

이 대신에 :

String char = name.substring(0,1); //char="a"

charAt()방법을 사용해야합니다 .

char c = name.charAt(0); // c='a'
int ascii = (int)c;


답변

Java 문자가 ASCII 문자가 아니기 때문에이를 수행하는 방법을 보여주기 위해 제시된 몇 가지 답변이 모두 잘못되었습니다. Java는 유니 코드 문자의 멀티 바이트 인코딩을 사용합니다. 유니 코드 문자 집합은 수퍼 ASCII 집합입니다. 따라서 Java 문자열에 ASCII에 속하지 않는 문자가있을 수 있습니다. 이러한 문자에는 ASCII 숫자 값이 없으므로 Java 문자의 ASCII 숫자 값을 얻는 방법을 묻는 것은 대답 할 수 없습니다.

그러나 어쨌든 이것을하고 싶습니까? 당신은 그 가치로 무엇을 할 것입니까?

Java 문자열을 ASCII 문자열로 변환 할 수있는 숫자 값을 원한다면 실제 질문은 “Java 문자열을 ASCII로 인코딩하는 방법”입니다. 이를 위해 object를 사용하십시오 StandardCharsets.US_ASCII.


답변

전체 문자열을 연결된 ASCII 값으로 변환하려면 다음을 사용할 수 있습니다.

    String str = "abc";  // or anything else

    StringBuilder sb = new StringBuilder();
    for (char c : str.toCharArray())
    sb.append((int)c);

    BigInteger mInt = new BigInteger(sb.toString());
    System.out.println(mInt);

여기서 출력으로 979899가 표시됩니다.

에 신용 .

방금 다른 사람들에게 편리하도록 여기에 복사했습니다.


답변

char을 int로 변환하십시오.

    String name = "admin";
    int ascii = name.toCharArray()[0];

또한 :

int ascii = name.charAt(0);


답변

그냥 문자를 int로 캐스팅하십시오.

char character = 'a';
int number = (int) character;

값은 number97입니다.