19

JavaScript では.charCodeAt()、関数に渡す文字列の特定のポイントで Unicode 値を返します。文字が 1 つしかない場合は、次のコードを使用して Java で Unicode 値を取得できます。

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

.charCodeAt()Java に文字列がある場合、JavaScriptの関数のように、文字列内の個々の文字の Unicode 値を取得するにはどうすればよいでしょうか?

4

4 に答える 4

20

Java にも同じメソッドがあります: Character.codePointAt(CharSequence seq, int index);

String str = "Hello World";
int codePointAt0 = Character.codePointAt(str, 0);
于 2012-12-31T17:26:38.817 に答える
0

必要な特殊文字をフィルタリングする方法があります。ASCIIテーブルを確認してください

それが役に立てば幸い

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]);
        }

    }   
 }

}

出力

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
于 2015-04-15T12:55:21.120 に答える
0

これを試して:

public int charCodeAt(String string, int index) {
    return (int) string.charAt(index);
}
于 2012-12-31T17:23:04.140 に答える
-2
short unicode = string.charAt(index);
于 2012-12-31T17:24:59.023 に答える