Java中的 ”\t” 与 ’\t’

今天在敲代码时,遇到了一个问题,百思不得其解

输出代码:    

for (int i = 0; i < 5; i++) {
            System.out.print(b[i].p);
        }

输出结果:

结果是1.0   2.0   3.0 ...没问题,但是这样看着很费劲,我就准备给它中间加个制表符:

    for (int i = 0; i < 5; i++) {
            System.out.print(b[i].p+'\t');
        }

对的,就是这样,自我感觉没什么问题,可是一运行傻眼了:
 

结果是10.0   11.0   12.0 …,瞅了几遍才发现,原来是引号打错了,应该是双引号的:+”\t”。如果用单引号,这样就相当于加了 \t 这个转义字符的ASCII码,也就是1.0+9=10.0,所以才出现了上述问题。

附:ASCII码表及常用转义字符表

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

0

NUT

32

(space)

64

@

96

1

SOH

33

65

A

97

a

2

STX

34

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

,

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

X

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

/

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

~

31

US

63

?

95

127

DEL

 

 

转义字符

含义

ASCII码(16/10进制)

 

\o

空字符(NULL)

00H/0

\n

换行符(LF)

0AH/10

\r

回车符(CR)

0DH/13

\t

水平制表符(HT)

09H/9

\v

垂直制表(VT)

0B/11

\a

响铃(BEL)

07/7

\b

退格符(BS)

08H/8

\f

换页符(FF)

0CH/12

\’

单引号

27H/39

\”

双引号

22H/34

\\

反斜杠

5CH/92

\?

问号字符

3F/63

\ddd

任意字符

三位八进制

\xhh

任意字符

二位十六进制

 

你可能感兴趣的:(ASCII,杂记)