java去空格引出的ASCII十六进制无聊事件

来源:互联网 发布:ubuntu root 没有声音 编辑:程序博客网 时间:2024/06/09 20:03

public static String rightTrim(String str) {if (str == null) {return "";}int length = str.length();for (int i = length - 1; i >= 0; i--) {if (str.charAt(i) != 0x20) {break;}length--;}return str.substring(0, length);}

0x20让我困惑,后来想起0x或0X开头为16进制数,就想翻看ASCII:

标准ASCII表

Bin
Dec
Hex
缩写/字符
解释
0000 0000
0
00
NUL(null)
空字符
0000 0001
1
01
SOH(start of headline)
标题开始
0000 0010
2
02
STX (start of text)
正文开始
0000 0011
3
03
ETX (end of text)
正文结束
0000 0100
4
04
EOT (end of transmission)
传输结束
0000 0101
5
05
ENQ (enquiry)
请求
0000 0110
6
06
ACK (acknowledge)
收到通知
0000 0111
7
07
BEL (bell)
响铃
0000 1000
8
08
BS (backspace)
退格
0000 1001
9
09
HT (horizontal tab)
水平制表符
0000 1010
10
0A
LF (NL line feed, new line)
换行键
0000 1011
11
0B
VT (vertical tab)
垂直制表符
0000 1100
12
0C
FF (NP form feed, new page)
换页键
0000 1101
13
0D
CR (carriage return)
回车键
0000 1110
14
0E
SO (shift out)
不用切换
0000 1111
15
0F
SI (shift in)
启用切换
0001 0000
16
10
DLE (data link escape)
数据链路转义
0001 0001
17
11
DC1 (device control 1)
设备控制1
0001 0010
18
12
DC2 (device control 2)
设备控制2
0001 0011
19
13
DC3 (device control 3)
设备控制3
0001 0100
20
14
DC4 (device control 4)
设备控制4
0001 0101
21
15
NAK (negative acknowledge)
拒绝接收
0001 0110
22
16
SYN (synchronous idle)
同步空闲
0001 0111
23
17
ETB (end of trans. block)
传输块结束
0001 1000
24
18
CAN (cancel)
取消
0001 1001
25
19
EM (end of medium)
介质中断
0001 1010
26
1A
SUB (substitute)
替补
0001 1011
27
1B
ESC (escape)
换码(溢出)
0001 1100
28
1C
FS (file separator)
文件分割符
0001 1101
29
1D
GS (group separator)
分组符
0001 1110
30
1E
RS (record separator)
记录分离符
0001 1111
31
1F
US (unit separator)
单元分隔符
0010 0000
32
20
(space)
空格
0010 0001
33
21
!
 
0010 0010
34
22
"
 
0010 0011
35
23
#
 
0010 0100
36
24
$
 
0010 0101
37
25
%
 
0010 0110
38
26
&
 
0010 0111
39
27
'
 
0010 1000
40
28
(
 
0010 1001
41
29
)
 
0010 1010
42
2A
*
 
0010 1011
43
2B
+
 
0010 1100
44
2C
,
 
0010 1101
45
2D
-
 
0010 1110
46
2E
.
 
00101111
47
2F
/
 
00110000
48
30
0
 
00110001
49
31
1
  
00110010
50
32
2
  
00110011
51
33
3
  
00110100
52
34
4
  
00110101
53
35
5
  
00110110
54
36
6
  
00110111
55
37
7
  
00111000
56
38
8
  
00111001
57
39
9
  
00111010
58
3A
:
  
00111011
59
3B
;
  
00111100
60
3C
<
  
00111101
61
3D
=
  
00111110
62
3E
>
  
00111111
63
3F
?
  
01000000
64
40
@
  
01000001
65
41
A
  
01000010
66
42
B
  
01000011
67
43
C
  
01000100
68
44
D
  
01000101
69
45
E
  
01000110
70
46
F
  
01000111
71
47
G
  
01001000
72
48
H
  
01001001
73
49
I
  
01001010
74
4A
J
  
01001011
75
4B
K
  
01001100
76
4C
L
  
01001101
77
4D
M
  
01001110
78
4E
N
  
01001111
79
4F
O
  
01010000
80
50
P
  
01010001
81
51
Q
  
01010010
82
52
R
  
01010011
83
53
S
  
01010100
84
54
T
  
01010101
85
55
U
  
01010110
86
56
V
  
01010111
87
57
W
  
01011000
88
58
X
  
01011001
89
59
Y
  
01011010
90
5A
Z
  
01011011
91
5B
[
  
01011100
92
5C
\
  
01011101
93
5D
]
  
01011110
94
5E
^
  
01011111
95
5F
_
  
01100000
96
60
`
  
01100001
97
61
a
  
01100010
98
62
b
  
01100011
99
63
c
  
01100100
100
64
d
  
01100101
101
65
e
  
01100110
102
66
f
  
01100111
103
67
g
  
01101000
104
68
h
  
01101001
105
69
i
  
01101010
106
6A
j
  
01101011
107
6B
k
  
01101100
108
6C
l
  
01101101
109
6D
m
  
01101110
110
6E
n
  
01101111
111
6F
o
  
01110000
112
70
p
  
01110001
113
71
q
  
01110010
114
72
r
  
01110011
115
73
s
  
01110100
116
74
t
  
01110101
117
75
u
  
01110110
118
76
v
  
01110111
119
77
w
  
01111000
120
78
x
  
01111001
121
79
y
  
01111010
122
7A
z
  
01111011
123
7B
{
  
01111100
124
7C
|
  
01111101
125
7D
}
  
01111110
126
7E
~
  
01111111
127
7F
DEL (delete)
删除

发现空格为0010 0000 为32 转换为16进制果然为0x20

System.out.println(' '==00100000);
打印:false,

又百了一下:

java不显示地支持二进制数字,因为二进制的数字比较长,你可以考虑使用八进制或十六进制,这两种转换成二进制都比较方便.
又引出了:

Integer.toBinaryString(int i)返回i的二进制字符串表示,Integer.toHexString(int i)返回i的十六进制字符串表示,Integer.toOctalString(int i)返回i的八进制字符串表示,另外,Integer.toString(int i, int radix)返回i的radix进制表示。。。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为p9密码忘了怎么办 华为p9解锁密码忘了怎么办 华为手机不支持联通4g怎么办 酷派手机自动下载软件怎么办 小米5a不能开机怎么办 华为手机的视频找不到了怎么办 华为p8内存文件打不开怎么办 华为荣耀9网速慢怎么办 荣耀9手机网速慢怎么办 联想台式机不支持xp驱动怎么办 一体机尾插坏了怎么办 华为手机触屏失灵怎么办 华为p8max手机老是卡怎么办 手机屏碎了数据怎么办 华为p9屏碎了怎么办 华为p7一l09卡顿怎么办 华为p7打不开机怎么办 华为8主板坏了怎么办 华为手机主板坏了怎么办 华为p9文字变英文了怎么办 华为p9plus电池不耐用怎么办 华为mate8手机音量小怎么办 同花顺自选股更新不显示怎么办 华为麦芒定频了怎么办 用线刷宝刷机失败开不了机怎么办 红米手机拨号后黑屏怎么办 sim卡丢了激活码怎么办 电信sim卡未激活怎么办 小米5c老是黑屏怎么办 小米4x黑屏了怎么办 金立s10经常卡屏怎么办 x9来电屏幕不亮怎么办 小米手机拔号黑屏怎么办 小米手机进水黑屏了怎么办 小米6手机黑屏打不开怎么办 小米手机王者荣耀黑屏怎么办 小米5c手机黑屏怎么办 小米2s开机闪退怎么办 小米手机打不开机怎么办 苹果手机打电话闪退怎么办 红米手机通话时黑屏怎么办