回答編集履歴

4

追記

2017/10/21 01:16

投稿

退会済みユーザー
test CHANGED
@@ -33,6 +33,10 @@
33
33
  そのため、その値を画面表示するために文字列化する場合、文字コードとして適切な値であれば、その文字として表示しようとする動きとした方が利便性がよいと思われます。
34
34
 
35
35
  そのため、現在のJavaの実装では、文字列として扱おうとした場合に、char型は文字として扱われ、int型は数値として扱われることとしているものと考えます。
36
+
37
+ 実際にJava仮想マシンの仕様としてそのように定義されているかまでは調べていないのですぐにはわかりませんでした。
38
+
39
+
36
40
 
37
41
  画面表示の様子を下記のように試してみましたので、ご参考まで記載します。
38
42
 

3

追記

2017/10/21 01:16

投稿

退会済みユーザー
test CHANGED
@@ -19,3 +19,83 @@
19
19
  また、'a'の文字コードとして表示されている97という数値は10進数での値です。
20
20
 
21
21
  16進数表記では0x61となります。
22
+
23
+
24
+
25
+ ---
26
+
27
+ 追記:
28
+
29
+
30
+
31
+ char型は0から65535の範囲の値を扱うことができ、unsigned shortのような形でも利用できますが、本来の(と断言してよいかはわかりませんが)利用用途はJava内部で文字を扱う際のUCS-2というUnicode表現での1文字を表すことです。
32
+
33
+ そのため、その値を画面表示するために文字列化する場合、文字コードとして適切な値であれば、その文字として表示しようとする動きとした方が利便性がよいと思われます。
34
+
35
+ そのため、現在のJavaの実装では、文字列として扱おうとした場合に、char型は文字として扱われ、int型は数値として扱われることとしているものと考えます。
36
+
37
+ 画面表示の様子を下記のように試してみましたので、ご参考まで記載します。
38
+
39
+
40
+
41
+ ```bash
42
+
43
+ $ jshell
44
+
45
+ 10月 21, 2017 9:45:22 午前 java.util.prefs.FileSystemPreferences$1 run
46
+
47
+ INFO: Created user preferences directory.
48
+
49
+
50
+
51
+ | JShellへようこそ -- バージョン9
52
+
53
+ | 概要については、次を入力してください: /help intro
54
+
55
+
56
+
57
+ jshell> 'a'
58
+
59
+ $1 ==> 'a'
60
+
61
+
62
+
63
+ jshell> 0x61
64
+
65
+ $2 ==> 97
66
+
67
+
68
+
69
+ jshell> (char)0x61
70
+
71
+ $3 ==> 'a'
72
+
73
+
74
+
75
+ jshell> (int)'a'
76
+
77
+ $4 ==> 97
78
+
79
+
80
+
81
+ jshell> "abc".toCharArray()
82
+
83
+ $5 ==> char[3] { 'a', 'b', 'c' }
84
+
85
+
86
+
87
+ jshell> (char)12345
88
+
89
+ $6 ==> '〹'
90
+
91
+
92
+
93
+ jshell> (char)55555
94
+
95
+ $7 ==> '?'
96
+
97
+
98
+
99
+ jshell>
100
+
101
+ ```

2

追記

2017/10/21 00:56

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,9 @@
13
13
 
14
14
 
15
15
  また、Javaではintは数値を、charは1文字を表すために利用されるため、文字列化する際の仕様として質問に記載の動作としているものと思われます。
16
+
17
+
18
+
19
+ また、'a'の文字コードとして表示されている97という数値は10進数での値です。
20
+
21
+ 16進数表記では0x61となります。

1

表現の修正

2017/10/20 13:15

投稿

退会済みユーザー
test CHANGED
@@ -12,4 +12,4 @@
12
12
 
13
13
 
14
14
 
15
- また、Javaではintは数値を、charは1文字を表すために利用されるため、画面表示時の仕様として質問に記載の動作としているものと思われます。
15
+ また、Javaではintは数値を、charは1文字を表すために利用されるため、文字列化する際の仕様として質問に記載の動作としているものと思われます。