2012-12-31 4 views
12

JavaScript에서 .charCodeAt()은 함수에 전달한 문자열의 특정 지점에서 유니 코드 값을 반환합니다. 한 문자 만 있다면 아래 코드를 사용하여 Java에서 유니 코드 값을 얻을 수 있습니다. 나는 자바에서 문자열을 한 경우 .charCodeAt() 기능은 자바 스크립트를하는 것처럼.charCodeAt()에 해당하는 Java

public int charCodeAt(char c) { 
    int x; 
    return x = (int) c; 
} 

은, 어떻게, 문자열 내에서 한 개인 문자의 유니 코드 값을 얻을 것인가?

+1

확인이 도움이 희망 ASCII 표를 확인 http://stackoverflow.com/questions/2220366/get-unicode-value-of- a 문자 –

+8

합법적으로'java'와'javascript'에 태그가 달렸습니다. – jbabey

+0

누가 당신에게 _ 유니 코드가 24 비트라고 말했습니까 ?? – jlordo

답변

14

자바는 같은 방법이있다 : 당신이 필요로하는 특수 문자를 필터링하는 방법이있다 Character.codePointAt(CharSequence seq, int index);

String str = "Hello World"; 
int codePointAt0 = Character.codePointAt(str, 0); 
+0

은'int value = str.charAt (index); '를 사용하는 것보다 성능 차이가 있습니다. – exexzian

+2

예, 속도가 느립니다. 그러나 4 바이트 문자의 경우에도 올바로 작동합니다. 상위 및 하위 대리인으로 구성되며 사용자는 그렇지 않습니다. 당신은 언제나 [구현을 보라] (http://docjar.com/html/api/java/lang/Character.java.html). – jlordo

+0

그래서 당신의 기능은 암호화를 위해 더 좋을 것입니다. @jlordo? – syb0rg

0

이 시도 :

public int charCodeAt(String string, int index) { 
    return (int) string.charAt(index); 
} 
+1

이것은 대부분의 경우 올 Y 르며 상위 및 하위 대리인이 나타내는. 자에는 적합하지 않습니다. – jlordo

-2
short unicode = string.charAt(index); 
+0

제공 컴파일 시간 오류 – exexzian

+0

@sansix가 수정되었습니다. –

+0

@AndroidKiller가 왜 바이트로 변환 되나요 ?? 다른 모든 캐릭터는 어떨까요 ... – jlordo

0

. 그냥

그것이

public class main { 

public static void main(String args[]) { 
    String str = args[0]; 
    String bstr = ""; 
    String[] codePointAt = new String[str.length()]; 

    if (str != "") 
    { 
     for (int j = 0; j < str.length(); j++) 
     { 
      int charactercode=Character.codePointAt(str, j); 
      //CHECK on ASCII TABLE THE SPECIAL CHARS YOU NEED 
      if( (charactercode>31 && charactercode<48) || 
        (charactercode>57 && charactercode<65) || 
        (charactercode>90 && charactercode<97) || 
        (charactercode>127) 

       ) 
      { 
       codePointAt[ j] ="&"+String.valueOf(charactercode)+";"; 
      } 
      else 
      { 
       codePointAt[ j] = String.valueOf(str.charAt(j)); 
      } 
     } 

     for (int j = 0; j < codePointAt.length; j++) 
     { 
      System.out.println("CODE "+j+" ->"+ codePointAt[j]); 
     } 

    } 
} 

} 

OUTPUT

call with ("TRY./&asda") 

CODE 0 ->T 
CODE 1 ->R 
CODE 2 ->Y 
CODE 3 ->&46; 
CODE 4 ->&47; 
CODE 5 ->&38; 
CODE 6 ->a 
CODE 7 ->s 
CODE 8 ->d 
CODE 9 ->a 
+0

텍스트를 매개 변수로 main 함수에 보냅니다 !! 나는 그것을 충고하는 것을 잊었다! –