javaで
###実現したいこと
javaで10進数を文字に変換したいです
文字コードはUTF-8で
72 -> 'H'
のような変換をする方法を教えてください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
こちら参考にしてはどうでしょうか?
http://masao6739.blog89.fc2.com/blog-entry-26.html
投稿2016/11/19 04:49
総合スコア648
0
10進数の文字列を、Unicodeのコードポイントの数値と見なして、それを文字列にした場合のUTF-8のバイト列にしたいと言うことであってますでしょうか?
手順は少々複雑です。
- 十進数の文字列を数値に変換します。
- 数値をコードポイントと見なして、文字列を作成します。
- 文字列をUTF-8のバイト列に変換します。
これをコードにすると以下のようになります。
Java
1public class NumToUtf8 { 2 public static void main(String[] args) { 3 final String list[] = { 4 "72", // U+0048 "H" 5 "12354", // U+3042 "あ" 6 "128049", // U+1F431 "????" 7 }; 8 for (final String s: list) { 9 System.out.print("" + s + ": "); 10 for (final byte x: toUtf8(s)) { 11 System.out.printf("%02X", Byte.toUnsignedInt(x)); 12 System.out.print(" "); 13 } 14 System.out.println(); 15 } 16 } 17 18 public static byte[] toUtf8(String str) { 19 return new String(Character.toChars(Integer.parseInt(str))) 20 .getBytes(java.nio.charset.StandardCharsets.UTF_8); 21 } 22}
なお、補足です。まず、10進数は文字列です。10進数というもの自体は単独の数値に対する文字列での表し方であり、数値そのものではありません。また、UTF-8はエンコードの形式であり、バイト列(byteの配列)です。UTF-8の文字列もUTF-8の数値と言うのもありません。UTF-8のバイト列になって、初めてそれが文字列と相互に変換でき、意味を持ちます。
投稿2016/11/19 05:24
編集2016/11/19 05:31総合スコア21735
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
変換だけなら以下でできます
java
1class Cd { 2 3public static void main(String [] args){ 4 5char[] charArray = Character.toChars(72); 6 7System.out.println(charArray); 8 9} 10 11}
投稿2016/11/19 04:57
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。