พิมพ์ชื่อตัวละคร


42

อักขระ Unicode ทุกตัวมีชื่อเช่น "LATIN CAPITAL LETTER A" ชื่ออักขระ Unicode อาจประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ช่องว่างสีขาวและเครื่องหมายลบเท่านั้น

เขียนโปรแกรมที่อ่านข้อความและส่งชื่อของอักขระแต่ละตัวในบรรทัดใหม่ ตัวอย่างเช่นหากอินพุตเป็น "Hello, World!" เอาต์พุตจะเป็น

LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK
  • อินพุตควรมาจากไฟล์หรือจากอินพุตของผู้ใช้ไม่ใช่เฉพาะสตริงในโค้ด
  • เอาต์พุตควรถูกเขียนไปยังไฟล์หรือ stdout หรือพิมพ์ไปที่หน้าจอ
  • ไม่อนุญาตให้ใช้อินเทอร์เน็ตและห้องสมุดภายนอกข้อมูลที่จำเป็นทั้งหมดควรอยู่ในรหัส
  • สมมติว่าอินพุตมีอักขระ ASCII ที่พิมพ์ได้เท่านั้นในช่วงรหัสละตินพื้นฐาน 32-126 คุณสามารถละเว้นการขึ้นบรรทัดใหม่ได้
  • อนุญาตให้ใช้ภาษาโปรแกรมทั้งหมด รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

อย่างเป็นทางการชื่ออักขระ Unicode สามารถพบได้ที่นี่ แหล่งอื่น ๆ :

นี่เป็นคำถามแรกของฉันดังนั้นฉันขอขอบคุณข้อเสนอแนะใด ๆ หากสามารถปรับปรุงได้

สำหรับจุดประสงค์ของการท้าทายรายการด้านล่างนี้จะเป็นบรรทัดฐาน

    32  0020        SPACE
!   33  0021        EXCLAMATION MARK
"   34  0022        QUOTATION MARK
#   35  0023        NUMBER SIGN
$   36  0024        DOLLAR SIGN
%   37  0025        PERCENT SIGN
&   38  0026        AMPERSAND
'   39  0027        APOSTROPHE
(   40  0028        LEFT PARENTHESIS
)   41  0029        RIGHT PARENTHESIS
*   42  002A        ASTERISK
+   43  002B        PLUS SIGN
,   44  002C        COMMA
-   45  002D        HYPHEN-MINUS
.   46  002E        FULL STOP
/   47  002F        SOLIDUS
0   48  0030        DIGIT ZERO
1   49  0031        DIGIT ONE
2   50  0032        DIGIT TWO
3   51  0033        DIGIT THREE
4   52  0034        DIGIT FOUR
5   53  0035        DIGIT FIVE
6   54  0036        DIGIT SIX
7   55  0037        DIGIT SEVEN
8   56  0038        DIGIT EIGHT
9   57  0039        DIGIT NINE
:   58  003A        COLON
;   59  003B        SEMICOLON
<   60  003C        LESS-THAN SIGN
=   61  003D        EQUALS SIGN
>   62  003E        GREATER-THAN SIGN
?   63  003F        QUESTION MARK
@   64  0040        COMMERCIAL AT
A   65  0041        LATIN CAPITAL LETTER A
B   66  0042        LATIN CAPITAL LETTER B
C   67  0043        LATIN CAPITAL LETTER C
D   68  0044        LATIN CAPITAL LETTER D
E   69  0045        LATIN CAPITAL LETTER E
F   70  0046        LATIN CAPITAL LETTER F
G   71  0047        LATIN CAPITAL LETTER G
H   72  0048        LATIN CAPITAL LETTER H
I   73  0049        LATIN CAPITAL LETTER I
J   74  004A        LATIN CAPITAL LETTER J
K   75  004B        LATIN CAPITAL LETTER K
L   76  004C        LATIN CAPITAL LETTER L
M   77  004D        LATIN CAPITAL LETTER M
N   78  004E        LATIN CAPITAL LETTER N
O   79  004F        LATIN CAPITAL LETTER O
P   80  0050        LATIN CAPITAL LETTER P
Q   81  0051        LATIN CAPITAL LETTER Q
R   82  0052        LATIN CAPITAL LETTER R
S   83  0053        LATIN CAPITAL LETTER S
T   84  0054        LATIN CAPITAL LETTER T
U   85  0055        LATIN CAPITAL LETTER U
V   86  0056        LATIN CAPITAL LETTER V
W   87  0057        LATIN CAPITAL LETTER W
X   88  0058        LATIN CAPITAL LETTER X
Y   89  0059        LATIN CAPITAL LETTER Y
Z   90  005A        LATIN CAPITAL LETTER Z
[   91  005B        LEFT SQUARE BRACKET
\   92  005C        REVERSE SOLIDUS
]   93  005D        RIGHT SQUARE BRACKET
^   94  005E        CIRCUMFLEX ACCENT
_   95  005F        LOW LINE
`   96  0060        GRAVE ACCENT
a   97  0061        LATIN SMALL LETTER A
b   98  0062        LATIN SMALL LETTER B
c   99  0063        LATIN SMALL LETTER C
d   100 0064        LATIN SMALL LETTER D
e   101 0065        LATIN SMALL LETTER E
f   102 0066        LATIN SMALL LETTER F
g   103 0067        LATIN SMALL LETTER G
h   104 0068        LATIN SMALL LETTER H
i   105 0069        LATIN SMALL LETTER I
j   106 006A        LATIN SMALL LETTER J
k   107 006B        LATIN SMALL LETTER K
l   108 006C        LATIN SMALL LETTER L
m   109 006D        LATIN SMALL LETTER M
n   110 006E        LATIN SMALL LETTER N
o   111 006F        LATIN SMALL LETTER O
p   112 0070        LATIN SMALL LETTER P
q   113 0071        LATIN SMALL LETTER Q
r   114 0072        LATIN SMALL LETTER R
s   115 0073        LATIN SMALL LETTER S
t   116 0074        LATIN SMALL LETTER T
u   117 0075        LATIN SMALL LETTER U
v   118 0076        LATIN SMALL LETTER V
w   119 0077        LATIN SMALL LETTER W
x   120 0078        LATIN SMALL LETTER X
y   121 0079        LATIN SMALL LETTER Y
z   122 007A        LATIN SMALL LETTER Z
{   123 007B        LEFT CURLY BRACKET
|   124 007C        VERTICAL LINE
}   125 007D        RIGHT CURLY BRACKET
~   126 007E        TILDE

4
สวัสดีฉันได้ทำต่อไปและแก้ไขคำถามของคุณย้อนกลับหากคุณไม่เห็นด้วย คุณไม่ต้องการแหล่งข้อมูลเพิ่มเติมคุณต้องการหนึ่งเวอร์ชันเชิงบรรทัดฐานในคำถามเพื่อหลีกเลี่ยงปัญหาที่เกิดจากความคลาดเคลื่อน ฉันเลือกssec.wisc.edu/~tomw/java/unicode.html#x0000เนื่องจากมันสั้นที่สุด นอกจากนั้น +1
เลเวลริเวอร์ St

ขอบคุณสำหรับการแก้ไข @steveverrill ฉันขี้เกียจเกินกว่าจะทำเอง
ฉันกับแมว

เห็นได้ชัดว่าค่าที่มีอยู่เป็นส่วนหนึ่งของ Windows C:\Windows\System32\getuname.dllใน สิ่งนี้ยังนับว่าเป็น "ห้องสมุดภายนอก" แม้ว่าจะสร้างไว้ใน Windows หรือไม่
lc

6
ฉันเพิ่งเรียนรู้คำโซลิดัส
ลุค

คำตอบ:


31

Java - 113 ไบต์ (152 ถ้าอ่านจากบรรทัดคำสั่ง)

แก้ไข: ลบวงเล็บปีกกาที่ไร้ประโยชน์ออก

Edit2: ลบตัวแปรที่ไม่จำเป็นออก

Edit3: แทนที่จะเป็น Character.getName () ฉันใช้ c.getName ()

Edit4: การส่งสตริงเป็นอาร์กิวเมนต์บรรทัดคำสั่ง

ด้วยอาร์กิวเมนต์บรรทัดคำสั่ง (113 ไบต์):

class Z{public static void main(String[]x){for(Character c:x[0].toCharArray())System.out.println(c.getName(c));}}

เมื่ออ่านบรรทัด (152 ไบต์):

class Z{public static void main(String[]x){for(Character c:new java.util.Scanner(System.in).nextLine().toCharArray())System.out.println(c.getName(c));}}

Java มีทุกสิ่งที่จำเป็น ฉันแน่ใจว่าสิ่งนี้จะลงสนามได้


7
ประณาม! ในตัว! ในการทำให้สิ่งนี้เป็นความท้าทายที่น่าสนใจฉันจะถือว่าสิ่งนี้ไม่สอดคล้องกับ "ข้อมูลที่จำเป็นทั้งหมดควรอยู่ในรหัส" ฉลาดมาก ๆ
เลเวลริเวอร์เซนต์

1
@stververill โอ้ดี :) ฉันได้เห็นการท้าทายอีกครั้งที่เสียงกระเพื่อมสามัญทำสิ่งที่คล้ายกัน (นับจากหนึ่งถึง 100 ถ้าฉันจำได้ถูกต้อง)
Peter Lenkefi

6
ว้าวคราวนี้ Java มีโอกาสเอาชนะภาษากอล์ฟจำนวนมาก
vsz

4
Alternative Java 8 solution: วิธีx[0].chars().forEach(i->System.out.println(Character.getName(i)));นี้ช่วยประหยัด 2 chars เมื่อเทียบกับโซลูชันอาร์กิวเมนต์บรรทัดคำสั่ง (โดยแทนที่for-loop)
hjk

3
หรืออาจจะx[0].chars().map(' '::getName).forEach(System.out::println);
เอริค

18

Python 3, 56 ไบต์

ใช้ฟังก์ชั่นในตัวunicodedata.name()ดังนั้นสิ่งนี้อาจไม่สามารถใช้งานได้ คำตอบของจาวาก็คล้ายกันดังนั้นฉันคิดว่าอย่างน้อยก็น่าโพสต์

from unicodedata import*
for i in input():print(name(i))

ฉันยังต้องการโพสต์หนึ่งในหลาม แต่คำตอบจาวาของฉันคือ cheaty พอ :)
Peter Lenkefi

1
แน่นอนว่าfor i in input():print(unicodedata.name(i))สั้นกว่านี้?
เอริค

1
@ Eric ครั้งที่คุณต้องimport unicodedataเพื่อให้ของได้อีกต่อไป
mbomb007

17

JavaScript (ES6) 594 618 626

หมายเหตุฉันสามารถบันทึก ~ 30 ไบต์บีบอัดสตริงที่มีความยาวด้วย atob / btoa แต่อักขระ utf8 ด้านบน '~' ไม่ได้รับการยอมรับอย่างดีจากตัวแก้ไขโพสต์ Stack Exchange ฉันต้องการเก็บตัวอย่างข้อมูลที่ทำงานอยู่แทน

แก้ไข 8 ตัวอักษรที่บันทึกไว้ขอบคุณ @Ypnypn

การบีบอัดที่ชัดเจนของคำซ้ำ บรรทัดใหม่ภายใน backticks มีความสำคัญและนับ

ทดสอบการเรียกใช้ตัวอย่างข้อมูลใน Firefox

// TEST SUITE
// for testing purpose, redefine alert() to write inside the snippet body
alert=x=>O.innerHTML=x
// for testing purpose, redefine prompt() to have a default text containing all characters
_prompt=prompt
prompt=(i,s)=>{
  for(s='',i=32;i<127;i++)s+=String.fromCharCode(i);
  return _prompt("Insert your message or keep the default",s);
}  
  
// That's the answer code:
z='SPACE/EXCLAMA0QUOTA0NUMBER1DOLLAR1PERCENT1AMPERSAND/APOSTROPHE3242ASTERISK/PLUS1COMMA/HYPHEN-MINUS/FULL STOP/78ZERO8ONE8TWO8THREE8FOUR8FIVE8SIX8SEVEN8EIGHT8NINE86SEMI6LESS-THAN1EQUALS1GREATER-THAN1QUES0COMMERCIAL AT3SQUARE5REVERSE 7/4SQUARE5CIRCUMFLEX9/LOW LINE/GRAVE93CURLY5VERTICAL LINE/4CURLY5TILDE'.replace(/\d/g,c=>'TION MARK/, SIGN/,PARENTHESIS/,/LEFT ,RIGHT , BRACKET/,COLON/,SOLIDUS,/DIGIT , ACCENT'.split`,`[c]).split`/`,alert([...prompt()].map(c=>(q=c.charCodeAt()-32)<33?z[q]:q<59?'LATIN CAPITAL LETTER '+c:q<65?z[q-26]:q<91?'LATIN SMALL LETTER '+c.toUpperCase():z[q-52]).join`
`)
<pre id=O></pre>


9

R, 54 ไบต์ 62

library(Unicode)
cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")

แก้ไข: ต่อความคิดเห็น @flodels scanฉันต้องการที่จะอ่านมันจากการเชื่อมต่อครั้งแรกเพื่อให้มีการเพิ่ม และนี่ก็เป็นวิธีการแก้ปัญหาอาจไม่ใช่อำนาจตามทุกกฎ

การใช้

> cat(u_char_name(utf8ToInt(scan(,""))),sep="\n")
1: 'Hello, World!'
2: 
Read 1 item
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

นอกจากนี้คุณยังสามารถรวมฟังก์ชันการใช้งานเพื่อความสะดวกยิ่งขึ้น

UNI <- function(x)cat(paste0(u_char_name(utf8ToInt(x)),"\n"))

จากนั้นการใช้งานเป็นเพียง

UNI("Hello, World!")

1
จำนวนไบต์ของคุณถูกต้อง :)
สลายตัวของเบต้า

1
และยินดีต้อนรับสู่ PPCG! : D
Beta Decay

ดีสำหรับคุณที่มีบิลท์อินสำหรับงาน แต่เอาต์พุตไม่ใช่สิ่งที่ขอ - ตาราง 4 คอลัมน์แทนตาราง 1 คอลัมน์ ฉันคิดว่าคุณควรเพิ่ม core เพื่อให้ได้ผลลัพธ์ที่ถูกต้อง
edc65

@ edc65 นั้นง่ายต่อการแก้ไขฉันแค่คิดว่ามันเป็นโบนัส
David Arenburg

@ edc65 แก้ไขแล้ว
David Arenburg

7

Perl 6 , 21 ไบต์

ฉันไม่เห็นกฎใด ๆ โดยเฉพาะกับการใช้วิธีการในตัวสำหรับรับชื่อ Unicode
(นอกจากนี้คำตอบ Java ซึ่งเป็นหนึ่งในคะแนนสูงสุดในขณะนี้ไม่เหมือนกัน)

.say for get.uninames

1
Perl 6 แปลก ฉันรักมันแม้ว่า
แมว

6

Perl (+ coreutils) , 563 ไบต์

หมายเหตุ : ด้านล่างจะไม่ทำงานตามที่เป็นอยู่จะต้องทำซ้ำจากการxxdถ่ายโอนข้อมูลด้านล่าง! ฉันพยายามที่จะให้ข้อมูลดิบส่งผ่านไปยังzcatแต่ก็ล้มเหลว ฉันอาจจะใช้โมดูล Perl Gzip ดั้งเดิม แต่นั่นจะเป็นวันพรุ่งนี้อย่างแน่นอน!

use MIME::Base64;$x=encode_base64(join'',<DATA>);print eval(`base64 -D<<<'$x'|zcat`)->[-32+ord$_].$/for<>=~/./g
__END__
.....x.U.._.u.[r. .@.._~.E(X.i..............J_....1..N......7K......|ih....P...a7......,a.....o.!.=N.K.i.....$..vFv.Pv..........*o...=..|o..O.B..c%2\bj1Gr...nr.|c.{...q......3......aw;b\1...C.Yp..l..K...bB..2C...K..O8e.v...."..C..
.s; .}Oj.....JC..-`@.gMXM..@M...41k.i.K..M.&.&.&.&.&.MdM.&.;..X5q..M.wM|o....3.s.{....MJf4.h>G..B...~$....w...WC.q.2..b.o..Hh.7|.... c..(.I......d|.1...8.8.8.x.q.1.X..*.U.W..d|.....f..4f...l..g'>..oUq4.....j.jU...
0000000: 7573 6520 4d49 4d45 3a3a 4261 7365 3634  use MIME::Base64
0000010: 3b24 783d 656e 636f 6465 5f62 6173 6536  ;$x=encode_base6
0000020: 3428 6a6f 696e 2727 2c3c 4441 5441 3e29  4(join'',<DATA>)
0000030: 3b70 7269 6e74 2065 7661 6c28 6062 6173  ;print eval(`bas
0000040: 6536 3420 2d44 3c3c 3c27 2478 277c 7a63  e64 -D<<<'$x'|zc
0000050: 6174 6029 2d3e 5b2d 3332 2b6f 7264 245f  at`)->[-32+ord$_
0000060: 5d2e 242f 666f 723c 3e3d 7e2f 2e2f 670a  ].$/for<>=~/./g.
0000070: 5f5f 454e 445f 5f0a 1f8b 0808 ff78 ec55  __END__......x.U
0000080: 0003 5f00 7594 5b72 eb20 0c40 b7c2 5f7e  .._.u.[r. .@.._~
0000090: da45 2858 b669 c4c3 089c a49d ee7f 1b17  .E(X.i..........
00000a0: 92b1 9df4 4a5f 96ce d180 3192 7f4e 9cc0  ....J_....1..N..
00000b0: e2e9 e384 374b e0a1 b818 8c87 7c69 68a9  ....7K......|ih.
00000c0: b1bc 8150 fd19 b361 3785 960d 9108 f62c  ...P...a7......,
00000d0: 61b6 18ca 9682 6f80 210c 3d4e 914b 8e69  a.....o.!.=N.K.i
00000e0: eefb 108e c524 c8ad 7646 76dc 5076 d3fc  .....$..vFv.Pv..
00000f0: 9701 17cc 8efb ae89 2a6f cbda e83d b4e7  ........*o...=..
0000100: 7c6f ab85 4fef 42ed d563 2532 5c62 6a31  |o..O.B..c%2\bj1
0000110: 4772 c383 0e6e 72c5 7c63 8e7b 1203 ee71  Gr...nr.|c.{...q
0000120: b91e bccc 190f 33c6 9a8f c4ad 8761 773b  ......3......aw;
0000130: 625c 31ec 19f6 43ec 5970 8f8d 6ca4 d84b  b\1...C.Yp..l..K
0000140: 18bd db62 42e6 cf32 43d8 ce84 4b05 da4f  ...bB..2C...K..O
0000150: 3865 8476 f4b7 8aa5 22bf de43 ff0a ed73  8e.v...."..C...s
0000160: 3b20 037d 4f6a b714 8c85 e44a 4384 a52d  ; .}Oj.....JC..-
0000170: 6040 1367 4d58 4d0c 9a40 4d8c 9a98 3431  `@.gMXM..@M...41
0000180: 6bc2 69e2 4b13 174d 9026 bc26 8226 a226  k.i.K..M.&.&.&.&
0000190: 9226 164d 644d b026 d43b af9a 5835 71d5  .&.MdM.&.;..X5q.
00001a0: c44d 1377 4d7c 6fd3 cdad a133 9a73 067b  .M.wM|o....3.s.{
00001b0: c1fe aeb9 4d4a 6634 c768 3e47 febf 42eb  ....MJf4.h>G..B.
00001c0: b2ad 7e24 bc19 b0fd 77d2 978c 5743 cf71  ..~$....w...WC.q
00001d0: 9a32 acf8 621e 6fc1 1e48 68fa 377c 96b1  .2..b.o..Hh.7|..
00001e0: 95f1 2063 94f1 28e3 49c6 b38c 9d8c bf64  .. c..(.I......d
00001f0: 7c91 31c9 d8cb 38c8 38ca 38c9 7891 7196  |.1...8.8.8.x.q.
0000200: 31cb 58b9 cb2a e355 c657 19df 647c 97f1  1.X..*.U.W..d|..
0000210: dec2 b666 babf 3466 ebdf e26c eff5 6727  ...f..4f...l..g'
0000220: 3efb f76f 5571 34e0 e9f7 1fe2 6a1f 6a55  >..oUq4.....j.jU
0000230: 0700 00                                  ...

ในการสร้างไฟล์ขึ้นใหม่ให้รัน:

xxd -r > 57413.pl

วาง hexdump และกดEnterแล้ว+CtrlD

ทำงานเป็น:

perl 57413.pl <<< 'Hello, World!'
LATIN CAPITAL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
COMMA
SPACE
LATIN CAPITAL LETTER W
LATIN SMALL LETTER O
LATIN SMALL LETTER R
LATIN SMALL LETTER L
LATIN SMALL LETTER D
EXCLAMATION MARK

Perl เวอร์ชั่นก่อนหน้าบริสุทธิ์ 893 ไบต์

print[SPACE,'EXCLAMATION MARK','QUOTATION MARK',NUMBER.($s=" SIGN"),DOLLAR.$s,PERCENT.$s,AMPERSAND,APOSTROPHE,LEFT.($p=" PARENTHESIS"),RIGHT.$p,ASTERISK,PLUS.$s,COMMA,'HYPHEN-MINUS','FULL STOP',$d=SOLIDUS,($d="DIGIT ").ZERO,$d.ONE,$d.TWO,$d.THREE,$d.FOUR,$d.FIVE,$d.SIX,$d.SEVEN,$d.EIGHT,$d.NINE,COLON,SEMICOLON,"LESS-THAN$s",EQUALS.$s,"GREATER-THAN$s",'QUESTION MARK','COMMERCIAL AT',($b=($a=LATIN)." CAPITAL ".($l="LETTER ")).A,$b.B,$b.C,$b.D,$b.E,$b.F,$b.G,$b.H,$b.I,$b.J,$b.K,$b.L,$b.M,$b.N,$b.O,$b.P,$b.Q,$b.R,$b.S,$b.T,$b.U,$b.V,$b.W,$b.X,$b.Y,$b.Z,'LEFT SQUARE '.($e=BRACKET),"REVERSE $d","RIGHT SQUARE $e",'CIRCUMFLEX ACCENT','LOW LINE','GRAVE ACCENT',($m="$a SMALL $l ").A,$m.B,$m.C,$m.D,$m.E,$m.F,$m.G,$m.H,$m.I,$m.J,$m.K,$m.L,$m.M,$m.N,$m.O,$m.P,$m.Q,$m.R,$m.S,$m.T,$m.U,$m.V,$m.W,$m.X,$m.Y,$m.Z,"LEFT CURLY $e",'VERTICAL LINE',"RIGHT CURLY $e",TILDE]->[-32+ord$_].$/for<>=~/./g

5

awk - 794 739

     1 ทุนละตินอักษร B
     2 ทุนละตินอักษร E
     3 ทุนละตินอักษร G
     4 ทุนละตินอักษร 1
     5 ทุนละตินอักษร N
     6 ซ้ายค้างไว้ขณะนี้ 
     7 LATIN เล็กอักษร S
     8 LATIN เล็กตัวอักษร P
     LATIN เล็ก 9 L อักษร L
    10 LATIN เล็กตัวอักษร I
    11 LATIN เล็กตัวอักษร T
    12 การแยกซ้าย 
    13 เครื่องหมายคำพูด 
    14 LATIN เล็กตัวอักษร I
    15 COMMA 
    16 ทุนละตินอักษร L
    17 ละตินอักษรเล็กโวลต์
    18 COMMA 
    19 ทุนละตินอักษรเอส
    20 LATIN เล็ก LATTER V
    21 COMMA 
    22 LATIN เล็กอักษร A
    23 LATIN เล็กอักษร X
    24 COMMA 
    25 สำเนียง CIRCUMFLEX 
    26 LATIN เล็กอักษร X
    27 COMMA 
    28 SQUARE BRACKET ด้านซ้าย 
    29 LATIN เล็ก LETTER X
    30 COMMA 
    31 ทุนละตินอักษร Q
    32 COMMA 
    33 ทุนละตินอักษร O
    34 COMMA 
    35 LATIN เล็กตัวอักษร T
    36 ทุนละตินอักษร K
    37 COMMA 
    38 LATIN อักษรเล็ก C
    39 ทุนละตินอักษร K
    40 COMMA 
    41 LATIN เมืองหลวงตัวอักษร V
    42 COMMA 
    43 LATIN เล็กอักษร Q
    44 LATIN เล็ก LATTER X
    45 COMMA 
    46 ลาตินเล็กตัวอักษร G
    47 COMMA 
    48 ทุนละตินอักษร 1
    49 COMMA 
    50 LATIN อักษรขนาดเล็ก W
    51 LATIN เล็ก LATTER U
    52 COMMA 
    53 ทุนละตินอักษร X
    54 COMMA 
    55 LATIN เล็กอักษร B
    56 LATIN เล็กอักษร Y
    57 COMMA 
    58 LATIN เล็กอักษร B
    59 ซ้ายค้างไว้ขณะนี้ 
    60 COMMA 
    61 LATIN เล็กอักษร B
    62 LATIN เล็ก LETTER Z
    63 COMMA 
    64 LATIN เล็กอักษร B
    65 LATIN เล็กตัวอักษร D
    66 COMMA 
    67 LATIN LATTER ตัวอักษรเล็ก
    68 ตัวอักษรละตินเล็ก P
    69 COMMA 
    70 LATIN อักษรเล็ก B
    71 LATIN LATTER เล็ก R
    72 COMMA 
    73 LATIN เล็กอักษร B
    74 RIGHT BRACKET ขณะนี้ 
    75 COMMA 
    76 LATIN เล็กอักษร B
    77 LATIN เล็ก LATTER K
    78 COMMA 
    79 LATIN เล็กอักษร B
    80 LATIN LATTER เล็ก L
    81 COMMA 
    82 LATIN เล็กอักษร B
    83 LATIN เล็กอักษร O
    84 COMMA 
    85 LATIN LATTER เล็ก E
    86 COMMA 
    87 LATIN เมืองหลวงตัวอักษร P
    88 COMMA 
    89 ทุนละตินอักษร R
    90 LATIN เล็ก LATTER X
    91 COMMA 
    สายต่ำ 92 
    93 ละตินอักษรเล็ก X
    94 COMMA 
    95 ทุนละตินอักษร J
    96 LATIN LATTER เล็ก X
    97 COMMA 
    ทุนละติน 98 ตัวอักษร U
    99 LATIN เล็กอักษร V
   100 COMMA 
   101 LATIN ทุนตัวอักษร M
   102 TILDE 
   103 COMMA 
   104 พื้นที่ 
   105 LATIN อักษรเล็ก T
   106 การเน้นเสียง 
   107 ทุนละตินอักษร Y
   108 COMMA 
   ทุนละติน 109 ตัวอักษร Z
   ทุนละติน 110 ตัวอักษร X
   111 COMMA 
   112 LATIN LETTER ตัวอักษรเล็ก
   สำเนียง 113 
   114 LATIN เมืองหลวงอักษร Y
   115 COMMA 
   116 ทุนละตินอักษร N
   117 REVERSE SOLIDUS 
   118 REVERSE SOLIDUS 
   119 COMMA 
   สายแนวตั้ง 120 เส้น 
   121 LATIN LATTER เล็ก S
   122 COMMA 
   123 LATIN เล็กอักษรละติน
   124 REVERSE SOLIDUS 
   125 SOLIDUS ย้อนกลับ 
   126 COMMA 
   127 SPACE 
   128 LATIN เล็กตัวอักษร T
   129 LATIN เล็กอักษร H
   130 ทุนละตินอักษร Y
   131 COMMA 
   132 ตัวอักษรละตินทุนต
   133 LATIN LATTER เล็ก S
   134 COMMA 
   135 LATIN LATTER ตัวอักษรเล็ก
   136 LATIN L อักษรเล็ก H
   137 ทุนละตินอักษร Y
   138 COMMA 
   139 LATIN LATTER เล็ก F
   140 พื้นที่ 
   141 ทุนละตินอักษร H
   142 ทุนละตินอักษร Y
   143 อักษรละตินอักษร P
   144 ทุนละตินอักษร H
   145 ทุนละตินอักษร E
   146 ทุนละตินอักษร N
   147 ยัติภังค์ - ลบ 
   148 ทุนละตินอักษร M
   149 ทุนละตินอักษร 1
   150 ทุนละตินอักษร N
   151 ทุนละตินอักษร U
   152 ตัวอักษรละตินทุนส
   153 พื้นที่ 
   154 ทุนละตินอักษรกรัม
   155 ทุนละตินอักษร R
   156 ทุนละตินอักษร E
   157 ทุนละตินอักษร A
   158 ทุนละตินอักษรต
   159 ทุนละตินอักษร E
   160 ทุนละตินอักษร R
   161 ยัติภังค์ลบ 
   162 ทุนละตินอักษรต
   163 ทุนละตินอักษร H
   164 ทุนละตินอักษร A
   165 ทุนละตินอักษร N
   166 พื้นที่ 
   167 ทุนละตินอักษรพี
   168 ทุนละตินอักษร A
   169 ทุนละตินอักษร R
   170 ทุนละตินอักษร E
   171 ทุนละตินอักษร N
   172 อักษรละตินเมืองหลวงต
   173 ทุนละตินอักษร H
   174 ทุนละตินอักษร E
   175 ทุนละตินอักษรเอส
   176 ทุนละตินอักษร 1
   177 ทุนละตินอักษรเอส
   178 SPACE 
   179 ทุนละตินอักษร E
   ทุนละตินอักษร 180 X
   181 ตัวอักษรละตินละติน C.
   182 ตัวอักษรละติน L
   183 ทุนละตินอักษร A
   184 ทุนละตินอักษร M
   185 ทุนละตินอักษร A
   186 อักษรละตินเมืองหลวงต
   187 ทุนละตินอักษร 1
   188 ทุนละตินอักษร O
   189 ทุนละตินอักษร N
   190 SPACE 
   191 ตัวอักษรละตินละติน C.
   192 ทุนละตินอักษร O
   193 ทุนละตินอักษร M
   194 ทุนละตินอักษร M
   195 ทุนละตินอักษร E
   196 ทุนละตินอักษร R
   197 ทุนละตินอักษรค
   198 ทุนละตินอักษร 1
   199 ทุนละตินอักษร A
   ทุนละตินอักษร 200 ลิตร
   201 SPACE 
   202 ทุนละตินอักษร c
   203 ทุนละตินอักษร 1
   204 ทุนละตินอักษร R
   205 ทุนละตินอักษรค
   206 ทุนละตินอักษร U
   207 ทุนละตินอักษร M
   208 ทุนละตินอักษร F
   209 ทุนละตินอักษรแอล
   210 ทุนละตินอักษร E
   211 ทุนละตินอักษร X
   212 SPACE 
   213 ทุนละตินอักษร A
   214 ทุนละตินอักษรพี
   215 ทุนละตินอักษร O
   216 ทุนละตินอักษรเอส
   217 ตัวอักษรละตินละตินต
   218 ทุนละตินอักษร R
   219 ทุนละตินอักษร O
   ทุนตัวอักษรละติน 220 หน้า
   221 ทุนละตินอักษร H
   222 ทุนละตินอักษร E
   223 SPACE 
   224 ทุนละตินอักษรเอส
   225 ทุนละตินอักษร E
   226 ทุนละตินอักษร M
   227 ทุนละตินอักษร 1
   228 ตัวอักษรละตินทุนค
   229 ทุนละตินอักษร O
   230 ทุนละตินอักษรแอล
   231 ทุนละตินอักษร O
   232 ทุนละตินอักษร N
   233 SPACE 
   234 ทุนละตินอักษร A
   235 ทุนละตินอักษร M
   236 ตัวอักษรละตินอักษร P
   237 ทุนละตินอักษร E
   238 ทุนละตินอักษร R
   239 ทุนละตินอักษรเอส
   240 ทุนละตินอักษร A
   241 ตัวอักษรละตินอักษร N
   242 ทุนละตินอักษร D
   243 SPACE 
   244 ทุนละตินอักษรแอล
   245 ทุนละตินอักษร E
   246 ทุนละตินอักษรเอส
   247 ทุนละตินอักษรเอส
   248 ยัติภังค์ลบ 
   249 อักษรละตินเมืองหลวงต
   250 ทุนละตินอักษร H
   251 ทุนละตินอักษร A
   252 ทุนละตินอักษร N
   253 ช่องว่าง 
   254 ทุนละตินอักษร Q
   255 ทุนละตินอักษร U
   256 ทุนละตินอักษร O
   257 ตัวอักษรละตินละตินต
   258 ทุนละตินอักษร A
   259 ตัวอักษรละตินละตินต
   260 ทุนละตินอักษร 1
   261 ทุนละตินอักษร O
   262 ทุนละตินอักษร N
   263 SPACE 
   264 ทุนละตินอักษร V
   265 ทุนละตินอักษร E
   266 ทุนละตินอักษร R
   267 ทุนละตินอักษรต
   268 ทุนละตินอักษร 1
   269 ​​ทุนละตินอักษร C
   ทุนละติน 270 ตัวอักษร A
   271 ทุนละตินอักษรแอล
   272 SPACE 
   273 ทุนละตินอักษร Q
   274 ทุนละตินอักษร U
   275 ทุนละตินอักษร E
   276 ทุนละตินอักษรเอส
   277 ทุนละตินอักษรต
   278 ทุนละตินอักษร 1
   279 ทุนละตินอักษร O
   280 ทุนละตินอักษร N
   281 SPACE 
   282 ทุนละตินอักษร A
   283 ทุนละตินอักษรเอส
   284 อักษรละตินเมืองหลวงต
   285 ทุนละตินอักษร E
   286 ทุนละตินอักษร R
   287 ทุนละตินอักษร 1
   288 ทุนละตินอักษรเอส
   289 ทุนละตินอักษร K
   290 SPACE 
   291 ทุนละตินอักษรค
   292 ทุนละตินอักษร A
   293 ทุนละตินอักษรพี
   294 ทุนละตินอักษร 1
   295 ทุนละตินอักษรต
   296 ทุนละตินอักษร A
   297 ทุนละตินอักษรแอล
   298 SPACE 
   299 ทุนละตินอักษรเอส
   ทุนละติน 300 ตัวอักษร O
   301 ทุนละตินอักษรแอล
   302 ทุนละตินอักษร 1
   303 ทุนละตินอักษร D
   304 LATIN ทุนตัวอักษร U
   305 ทุนละตินอักษรเอส
   306 SPACE 
   307 ทุนละตินอักษร B
   308 ทุนละตินอักษร R
   309 ทุนละตินอักษร A
   310 ตัวอักษรละตินทุนค
   311 ทุนละตินอักษร K
   312 ทุนละตินอักษร E
   313 ทุนละตินอักษรต
   314 SPACE 
   315 ทุนละตินอักษรอาร์
   316 ตัวอักษรละติน
   317 ทุนละตินอักษรวี
   318 ทุนละตินอักษร E
   319 ทุนละตินอักษร R
   320 ตัวอักษรละตินทุนเอส
   321 ทุนละตินอักษร E
   322 SPACE 
   323 ทุนละตินอักษรพี
   324 ทุนละตินอักษร E
   325 ทุนละตินอักษร R
   326 ตัวอักษรละตินทุนค
   327 ทุนละตินอักษร E
   328 ทุนละตินอักษร N
   329 อักษรละตินเมืองหลวงต
   330 SPACE 
   331 ทุนละตินอักษร A
   332 ทุนละตินอักษรค
   333 ทุนละตินอักษรค
   334 ทุนละตินอักษร E
   335 ทุนละตินอักษร N
   336 ตัวอักษรละตินละตินต
   337 ช่องว่าง 
   338 ทุนละตินอักษรแอล
   339 ทุนละตินอักษร E
   340 LATIN ทุนตัวอักษร T
   341 ตัวอักษรละตินละตินต
   342 ทุนละตินอักษร E
   343 ทุนละตินอักษร R
   344 SPACE 
   345 ทุนละตินอักษร D
   346 ทุนละตินอักษร O
   347 ทุนละตินอักษรแอล
   348 ทุนละตินอักษรแอล
   349 ทุนละตินอักษร A
   350 ตัวอักษรละตินทุนอาร์
   351 SPACE 
   352 ทุนละตินอักษร E
   353 ทุนละตินอักษร Q
   354 ทุนละตินอักษร U
   355 ทุนละตินอักษร A
   356 ทุนละตินอักษรแอล
   357 ทุนละตินอักษรเอส
   358 SPACE 
   359 ทุนละตินอักษรเอส
   ทุนตัวอักษรละติน 360 Q
   361 ทุนละตินอักษร U
   362 ทุนละตินอักษร A
   363 ทุนละตินอักษร R
   364 ทุนละตินอักษร E
   365 พื้นที่ 
   366 ทุนละตินอักษร N
   367 ทุนละตินอักษร U
   368 ทุนละตินอักษร M
   369 ทุนละตินอักษร B
   370 ทุนละตินอักษร E
   371 ทุนละตินอักษร R
   372 SPACE 
   373 ทุนละตินอักษร D
   374 ทุนละตินอักษร 1
   375 ทุนละตินอักษรกรัม
   376 ทุนละตินอักษร 1
   377 ทุนละตินอักษรต
   378 SPACE 
   379 ทุนละตินอักษร R
   ทุนการพิมพ์ละติน 380 I
   381 ทุนละตินอักษรกรัม
   382 ทุนละตินอักษร H
   383 อักษรละตินเมืองหลวงต
   384 ช่องว่าง 
   385 อักษรละตินเมืองหลวงต
   386 ทุนละตินอักษร H
   387 ทุนละตินอักษร R
   388 ทุนละตินอักษร E
   389 ทุนละตินอักษร E
   390 SPACE 
   391 ทุนละตินอักษรค
   392 ทุนละตินอักษร O
   393 ทุนละตินอักษรแอล
   394 ทุนละตินอักษร O
   395 ทุนละตินอักษร N
   396 พื้นที่ 
   397 ทุนละตินอักษรต
   398 ทุนละตินอักษร 1
   399 ทุนละตินอักษรแอล
   400 ทุนละตินอักษร D
   401 ทุนละตินอักษร E
   402 พื้นที่ 
   403 ทุนละตินอักษรค
   404 ทุนละตินอักษร O
   405 ทุนละตินอักษร M
   406 LATIN Capital เมืองหลวง M
   407 ทุนละตินอักษร A
   408 พื้นที่ 
   409 ตัวอักษรละตินทุนค
   410 ทุนละตินอักษร U
   411 ทุนละตินอักษร R
   412 LATIN ทุนตัวอักษร L
   413 LATIN เมืองหลวงตัวอักษร Y
   414 พื้นที่ 
   415 ตัวอักษรละตินทุนส
   416 ทุนละตินอักษรพี
   417 ทุนละตินอักษร A
   418 ตัวอักษรละตินทุนค
   419 ทุนละตินอักษร E
   420 พื้นที่ 
   421 ทุนละตินอักษร S
   422 ทุนละตินอักษร M
   423 ทุนละตินอักษร A
   424 ตัวอักษรละติน L
   425 ทุนละตินอักษร L
   426 ช่องว่าง 
   427 ทุนละตินอักษร S
   428 ตัวอักษรละตินอักษร E
   429 ทุนละตินอักษร V
   430 ทุนละตินอักษร E
   431 ทุนละตินอักษร N
   432 SPACE 
   433 ตัวอักษรละตินทุน E
   434 ทุนละตินอักษร 1
   435 ทุนละตินอักษร G
   436 ทุนละตินอักษร H
   437 ตัวอักษรละตินละตินต
   438 SPACE 
   439 ทุนละตินอักษร G
   440 ตัวอักษร LATIN R
   441 ทุนละตินอักษร A
   442 ทุนละตินอักษร 5
   443 ทุนละตินอักษร E
   444 SPACE 
   445 ตัวอักษรละติน L
   446 ทุนละตินอักษร A
   447 ตัวอักษรละตินละตินต
   448 ทุนละตินอักษร 1
   449 ตัวอักษรละตินอักษร N
   450 ช่องว่าง 
   451 ตัวอักษรละตินอักษร N
   452 ทุนละตินอักษร 1
   453 ทุนละตินอักษร N
   454 ทุนละตินอักษร E
   455 SPACE 
   456 ทุนละตินอักษร F
   457 ทุนละตินอักษร O
   458 ทุนละตินอักษร U
   ตัวอักษรละติน 459 R
   460 พื้นที่ 
   461 ตัวอักษรละตินอักษร P
   462 ทุนละตินอักษรแอล
   463 ทุนละตินอักษร U
   464 ทุนละตินอักษรเอส
   465 SPACE 
   466 ทุนละตินอักษร F
   467 ทุนละตินอักษร 1
   468 ทุนละตินอักษร 5
   469 ทุนละตินอักษร E
   470 SPACE 
   471 ทุนละตินอักษร L
   472 ทุนละตินอักษร 1
   473 ทุนละตินอักษร N
   474 ทุนละตินอักษร E
   475 SPACE 
   476 ตัวอักษรละติน L
   477 ทุนละตินอักษร E
   ทุน 478 อักษรละติน F
   479 อักษรละตินเมืองหลวงต
   480 SPACE 
   481 อักษรละตินทุนเอส
   482 อักษรละตินทุนต
   483 ทุนละตินอักษร O
   484 อักษรละตินทุน P
   485 SPACE 
   486 ทุนละตินอักษร M
   487 ทุนละตินอักษร A
   488 ทุนละตินอักษร R
   ทุนตัวอักษรละติน 489 K
   490 SPACE 
   491 ทุนละตินอักษร F
   492 ทุนละตินอักษร U
   493 ทุนละตินอักษร L
   494 ทุนละตินอักษร L
   495 SPACE 
   496 ทุนละตินอักษร S
   497 ทุนละตินอักษร 1
   498 ทุนละตินอักษรกรัม
   499 ตัวอักษรละตินอักษร N
   500 พื้นที่ 
   501 ตัวอักษรละตินอักษร Z
   502 อักษรละตินทุน E
   ตัวอักษรละติน 503 R
   504 ทุนละตินอักษร O
   505 SPACE 
   ทุนตัวอักษรละติน 506 ต
   ทุนละตินอักษร 507
   508 ทุนละตินอักษร O
   509 ช่องว่าง 
   510 LATIN ทุนตัวอักษร O
   511 ทุนละตินอักษร N
   512 LATIN เมืองหลวงตัวอักษร E
   513 SPACE 
   ตัวอักษรละติน 514 ลิตร
   515 ทุนละตินอักษร O
   516 ทุนละตินอักษร w
   517 SPACE 
   ตัวอักษรละติน 518 ตัว
   519 ทุนละตินอักษร 1
   520 LATIN ทุนตัวอักษร X
   521 SPACE 
   522 ทุนละตินอักษร A
   ตัวอักษรละติน 523 ต
   เครื่องหมายการเสนอราคา 524 
   525 COMMA 
   526 LATIN เล็กอักษร W
   527 การปกครองที่ถูกต้อง 
   528 SEMICOLON 
   529 LATIN เล็กอักษร Y
   530 เข้าสู่ระบบเท่ากับ 
   531 LATIN เล็กอักษรละติน W
   532 ช่องเสียบด้านซ้าย 
   533 สองหลัก 
   534 ช่องสี่เหลี่ยมด้านขวา 
   535 อัฒภาค 
   536 LATIN เล็กอักษร F
   537 LATIN เล็กอักษร O
   538 LATIN เล็กอักษร R
   539 วิทยาการด้านซ้าย 
   540 LATIN LETTER เล็ก X
   541 การลงชื่อเท่ากับ 
   542 LATIN เล็กอักษรละติน W
   543 ช่องสี่เหลี่ยมด้านซ้าย 
   544 DIGIT ONE 
   545 ช่องสี่เหลี่ยมด้านขวา 
   546 SEMICOLON 
   547 LATIN เล็กตัวอักษร I
   สัญญาณบวก 548 
   549 PLUS SIGN 
   550 สัญญาณน้อยกว่า 
   551 สองหลัก 
   552 DIGIT SIX 
   553 อัฒภาค 
   554 LATIN เล็กอักษร X
   555 ลงชื่อเท่ากับ 
   556 LATIN เล็กอักษร X
   เครื่องหมายคำพูด 557 
   558 LATIN เล็กอักษร L
   559 ทุนละตินอักษร w
   560 RIGHT SQUARE BRACKET 
   561 COMMA 
   เครื่องหมายคำพูด 562 
   563 การปกครองที่ถูกต้อง 
   564 LATIN อักษรเล็ก Y
   565 การลงชื่อเท่ากับ 
   566 LATIN อักษรเล็ก Y
   เครื่องหมายคำพูด 567 
   568 LATIN ตัวอักษรเล็ก N
   569 ละตินอักษรเล็ก J
   570 RIGHT SQUARE BRACKET 
   571 COMMA 
   เครื่องหมายใบเสนอราคา 572 
   573 SEMICOLON 
   574 LATIN เล็กอักษร F
   575 LATIN เล็กตัวอักษร O
   576 LATIN อักษรเล็ก R
   577 การแยกซ้าย 
   578 LATIN เล็กตัวอักษร S
   ตัวอักษรละตินขนาดเล็ก 579 หน้า
   580 LATIN L อักษรตัวเล็ก L
   581 LATIN เล็กตัวอักษร I
   582 LATIN อักษรเล็ก T
   583 การแยกซ้าย 
   584 LATIN LATTER เล็ก X
   585 SPACE 
   586 LATIN เล็กอักษร Y
   587 SPACE 
   588 LATIN เล็กอักษรละติน W
   589 ช่องเสียบด้านซ้าย 
   สามหลัก 590 
   591 RIGHT SQUARE BRACKET 
   592 COMMA 
   593 LATIN เล็กอักษร B
   594 COMMA 
   เครื่องหมายคำพูด 595 
   596 COMMA 
   เครื่องหมายคำพูด 597 
   598 การปกครองที่ถูกต้อง 
   599 SEMICOLON 
   600 LATIN เล็กอักษร J
   สัญญาณบวก 601 
   สัญญาณบวก 602 
   เข้าสู่ระบบน้อยกว่า 603 
   604 DIGIT ONE 
   605 สองหลัก 
   606 DIGIT SIX 
   สัมมนา 607 ครั้ง 
   ตัวอักษรละติน 608 ตัวอักษร F
   ตัวอักษรละติน 609 S
   610 เข้าสู่ระบบเท่ากับ 
   611 LOW LINE 
   612 การปกครองที่ถูกต้อง 
   613 LATIN LATTER เล็ก D
   614 ขายึดสี่เหลี่ยมด้านซ้าย 
   615 LATIN LATTER เล็ก S
   616 ละตินอักษรเล็กตัวอักษร P
   617 ละตินอักษรเล็ก R
   618 ละตินอักษรเล็ก I
   619 LATIN เล็กตัวอักษร N
   ตัวอักษรละตินขนาดเล็ก 620
   621 ละตินอักษรเล็ก F
   622 พิธีกรรมด้านซ้าย 
   เครื่องหมายการเสนอราคา 623 
   624 PERCENT SIGN 
   625 LATIN LATTER ตัวอักษรเล็ก
   626 เครื่องหมายคำพูด 
   627 COMMA 
   628 ละตินอักษรเล็ก J
   629 การปกครองที่ถูกต้อง 
   630 RIGHT SQUARE BRACKET 
   631 การลงชื่อเท่ากับ 
   632 ละตินอักษรเล็ก J
   633 สร้อยข้อมือโค้งขวา 
   634 BRURET ซ้ายซ้าย 
   635 LATIN เล็กอักษร F
   636 ละตินอักษรเล็กตัวอักษร O
   637 LATIN เล็กอักษร R
   638 การแยกซ้าย 
   639 LATIN เล็กตัวอักษร K
   ลงชื่อเท่ากับ 640 
   641 DIGIT ZERO 
   642 SEMICOLON 
   643 LATIN เล็กอักษร K
   เข้าสู่ระบบ 644 PLUS 
   645 PLUS SIGN 
   646 เข้าสู่ระบบน้อยกว่า 
   647 ทุนละตินอักษร N
   648 ทุนละตินอักษร F
   649 อัฒภาค 
   650 ตัวอักษรละตินเล็ก P
   651 ละตินอักษรเล็ก R
   652 LATIN เล็กตัวอักษร I
   653 LATIN เล็กอักษร L
   654 LATIN ตัวอักษรเล็ก T
   655 SPACE 
   656 LATIN เล็กตัวอักษร I
   657 เข้าสู่ระบบเท่ากับ 
   658 สายต่ำ 
   659 การถวิลหาทางขวา 
   660 LATIN เล็กอักษรละติน W
   661 LATIN เล็กอักษร H
   662 LATIN เล็กตัวอักษร I
   663 LATIN เล็กอักษร L
   664 LATIN เล็กตัวอักษร E
   665 ผู้ปกครองด้านซ้าย 
   666 LATIN เล็กตัวอักษร I
   สัญญาณบวก 667 
   เข้าสู่ระบบ 668 PLUS 
   669 สัญญาณน้อยกว่า 
   670 LATIN เล็กอักษร S
   671 LATIN LATTER เล็ก P
   672 LATIN LATTER L อักษรเล็ก
   673 LATIN เล็กตัวอักษร I
   674 LATIN เล็กอักษรละติน
   675 การแยกซ้าย 
   676 LATIN เล็กอักษร B
   677 ขายึดสี่เหลี่ยมด้านซ้าย 
   678 LATIN เล็กอักษร D
   679 ยึดสี่เหลี่ยมด้านซ้าย 
   680 ดอลลาร์ลงชื่อ 
   681 ละตินอักษรเล็ก K
   682 ช่องสี่เหลี่ยมด้านขวา 
   683 ยัติภังค์ลบ 
   684 สามหลัก 
   685 DIGIT ONE 
   686 RIGHT SQUARE BRACKET 
   687 COMMA 
   688 LATIN เล็กอักษร Q
   689 การปกครองที่ถูกต้อง 
   690 นักบวชที่ถูกต้อง 
   691 ลาตินเล็กตัวอักษร P
   692 ละตินอักษรเล็ก R
   693 ละตินอักษรเล็ก I
   694 ลาตินเล็กตัวอักษร N
   695 LATIN เล็กอักษรละติน
   696 ละตินอักษรเล็ก F
   697 การแยกซ้าย 
   698 ละตินอักษรเล็ก Z
   699 เครื่องหมายเท่ากับ 
   ตัวอักษรละตินเล็ก 700 ตัว W
   701 BRACKET ด้านซ้าย 
   702 LATIN เล็กอักษร D
   703 ขายึดสี่เหลี่ยมด้านซ้าย 
   704 LATIN เล็กอักษร Q
   705 ช่องเสียบด้านซ้าย 
   706 LATIN เล็กตัวอักษร 1
   707 RIGHT SQUARE BRACKET 
   708 RIGHT SQUARE BRACKET 
   709 ยัติภังค์ลบ 
   710 DIGIT SIX 
   711 DIGIT NINE 
   712 RIGHT SQUARE BRACKET 
   713 การปกครองที่ถูกต้อง 
   714 เครื่องหมายคำพูด 
   715 SPACE 
   716 เครื่องหมายคำพูด 
   717 การแยกซ้าย 
   718 LATIN ตัวอักษรเล็ก Z
   719 TILDE 
   720 SOLIDUS 
   721 ตัวอักษรละตินละตินต
   722 ตัวอักษรละตินละตินต
   723 SOLIDUS 
   เครื่องหมายคำถาม 724 
   725 LATIN อักษรเล็ก T
   726 LATIN เล็กอักษร O
   727 LATIN เล็กอักษร U
   ตัวอักษรละตินขนาดเล็ก 728 P
   729 LATIN เล็กอักษรละติน
   730 LATIN เล็กตัวอักษร E
   731 LATIN เล็กอักษร R
   732 การแยกซ้าย 
   733 ดอลลาร์ลงชื่อ 
   734 LATIN เล็กอักษร K
   735 การปกครองที่ถูกต้อง 
   736 COLON 
   737 สายต่ำ 
   738 นักบวชที่ถูกต้อง 
   739 ข้อต่อโค้งขวา

แค่ล้อเล่น D

BEGIN{split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-THAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSAND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVERSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);x=w[1];for(y=w[2];C++<26;x=x"nW],")y=y"nj],";for(split(x y w[3],b,",");j++<126;FS=_)d[sprintf("%c",j)]=j}{for(k=0;k++<NF;print i=_)while(i++<split(b[d[$k]-31],q))printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)}

ทำงานร่วมกับ stdin / stdout

เพิ่มเติม "อ่านได้":

BEGIN{

  # This string (508 bytes) holds a representation of the character names in 
  # the right order, plus a list of the used words.

    split("i,Lv,Sv,ax,^x,[x,Q,O,tK,cK,V,qx,g,I,wu,X,by,b{,bz,bd,bp,br,b},bk,bl,bo,
    e,P,Rx,_x,Jx,Uv,M~, t`Y,ZX,c`Y,N\\,|s,m\\, thY,Ts,chY,f HYPHEN-MINUS GREATER-T
    HAN PARENTHESIS EXCLAMATION COMMERCIAL CIRCUMFLEX APOSTROPHE SEMICOLON AMPERSA
    ND LESS-THAN QUOTATION VERTICAL QUESTION ASTERISK CAPITAL SOLIDUS BRACKET REVE
    RSE PERCENT ACCENT LETTER DOLLAR EQUALS SQUARE NUMBER DIGIT RIGHT THREE COLON
    TILDE COMMA CURLY SPACE SMALL SEVEN EIGHT GRAVE LATIN NINE FOUR PLUS FIVE LINE
     LEFT STOP MARK FULL SIGN ZERO TWO ONE LOW SIX AT",w);

  # Since the letters each appear 26 times I construct that part at runtime.
  # The array b will hold the coded combinations of which words need to
  # be printed for each input character.

    x=w[1];
    for(y=w[2];C++<26;x=x"nW],")
        y=y"nj],";

  # The array d is an ASCIICodeFromChar function replacement.
  # I set the field separator to empty, so each character of the input is
  # an input field. That's why using a BEGIN part was mandatory.

    for(split(x y w[3],b,",");j++<126;FS=_)
        d[sprintf("%c",j)]=j
}

  # Here I go through the element of b that matches the input and print
  # the requested words, using the input to produce a capital letter if
  # needed. I excluded these from the word list to save another 26 bytes

{
    for(k=0;k++<NF;print i=_)
        while(i++<split(b[d[$k]-31],q))
            printf(z=w[d[q[i]]-69])" "(z~/TT/?toupper($k):_)
}

5

C ++ 11, 739 ไบต์

#include<iostream>
#define D,"DIGIT "
#define G" SIGN",
int main(){std::string a=" BRACKET",s="SQUARE"+a,c="CURLY"+a,t="TION MARK",p="PARENTHESIS",l="LEFT ",r="RIGHT ",x="LATIN ",y="L LETTER ",z[]{"SPACE","EXCLAMA"+t,"QUOTA"+t,"NUMBER"G"DOLLAR"G"PERCENT"G"AMPERSAND","APOSTROPHE",l+p,r+p,"ASTERISK","PLUS"G"COMMA","HYPHEN-MINUS","FULL STOP","SOLIDUS"D"ZERO"D"ONE"D"TWO"D"THREE"D"FOUR"D"FIVE"D"SIX"D"SEVEN"D"EIGHT"D"NINE","COLON","SEMICOLON","LESS-THAN"G"EQUALS"G"GREATER-THAN"G"QUES"+t,"COMMERCIAL AT",l+s,"REVERSE SOLIDUS",r+s,"CIRCUMFLEX ACCENT","LOW LINE","GRAVE ACCENT",l+c,"VERTICAL LINE",r+c,"TILDE"};getline(std::cin,s);for(char c:s)std::cout<<(c<65?z[c-32]:c<91?x+"CAPITA"+y+c:(c-=32,c<65?z[c-26]:c<91?x+"SMAL"+y+c:z[c-52]))+"\n";}

ขึ้นอยู่กับวิธีการแก้ปัญหาของ sweerpotato แต่แก้ไขอย่างหนัก


ทำได้ดีมาก: ~)!
sweerpotato

5

C, 644 656

โปรแกรมเต็มรูปแบบอ่านจากอินพุตมาตรฐาน

ทดสอบไอดีโอ

นี่คือคำตอบของการย้าย JavaScript ของฉันกับภาษาซีซีเป็นสิ่งที่ดีที่การจัดการตัวอักษรเดียวเป็นตัวเลข (ความต้องการของไม่มี.toUpperCaseและชอบ) แต่ก็ปรับตัวลดลงในการจัดการสตริง

char*s,*p,*q,b[999],*d=b+99,c,*l[129];
main(k){for(k=32,p="/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
c=*p;p++)c>96?q?(p=q,q=0):(q=p,p=strchr("aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz",c)):c-47?*d++=c:(*d++=0,l[k++]=d);
for(;~(k=getchar());puts(k<65?l[k]:(k&31)<27?b:l[k<97?k-26:k-52]))sprintf(b,"LATIN %s LETTER %c",k<91?"CAPITAL":"SMALL",k&95);}

น้อย golfed

char *all = "/SPACE/EXCLAMAaQUOTAaNUMBERbDOLLARbPERCENTbAMPERSAND/APOSTROPHEdcecASTERISK/PLUSbCOMMA/HYPHEN-MINUS/FULL STOP/hiZEROiONEiTWOiTHREEiFOURiFIVEiSIXiSEVENiEIGHTiNINE/gSEMIgLESSnbEQUALSbGREATERnbQUESaCOMMERCIAL ATdkfREVERSE h/ekfCIRCUMFLEXj/LOWmGRAVEjdlfVERTICALmelfTILDE/";
char *subs = "aTION MARK/b SIGN/cPARENTHESIS/d/LEFT eRIGHT f BRACKET/gCOLON/hSOLIDUSi/DIGIT j ACCENTkSQUARElCURLYm LINE/n-THANz";

main(int k)
{
    char c, *s, *p, *q=0, 
    b[999], // work buffer
    *d = b+99, // first part of buffer is used later
    *l[129]; // characters descriptions (used 32 to 126)

    // Uncompress the descriptions of all char except letters
    for(k = 32, p = all; c = *p; ++p)
    {
       c >= 'a' // substitution word are marked as lowercase letters
        ? q  
           ? (p = q, q = 0)
           : (q = p, p = strchr(subs, c))
        : c != '/'
           ? *d++ = c 
           : (*d++ = 0, l[k++] = d); // end char description
    }
    // Scan the input string and print each char description
    for(; (k=getchar()) != -1; )
    {
       sprintf(b,"LATIN %s LETTER %c", k<91 ? "CAPITAL":"SMALL", k & 95);
       puts( k<65 ? l[k] : k<91 ? b : k<97 ? l[k-26] : k<123 ? b : l[k-52]);
    }
}

4

Common LISP (SBCL) 52 79

(map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))

นี่คือการติดตั้งในตัวและขึ้นอยู่กับการนำไปใช้ดังนั้นคุณอาจต้องการเพิกเฉยเมื่อเลือกคำตอบที่ยอมรับได้ สิ่งนี้ไม่เพียงพอที่จะเอาชนะPython ได้อย่างน่าเสียดาย เวอร์ชันที่อัปเดตนั้นสอดคล้องกับเอาต์พุตที่คาดหวัง (ฉันต้องแทนที่ขีดล่างด้วยช่องว่าง)

ตัวอย่าง

CL-USER> (map()(lambda(y)(format t"~:@(~A~)~%"(substitute #\  #\_(char-name y))))(read))
"(λ(r)(* 2 ᴨ r))"
LEFT PARENTHESIS
GREEK SMALL LETTER LAMDA
LEFT PARENTHESIS
LATIN SMALL LETTER R
RIGHT PARENTHESIS
LEFT PARENTHESIS
ASTERISK
SPACE
DIGIT TWO
SPACE
GREEK LETTER SMALL CAPITAL PI
SPACE
LATIN SMALL LETTER R
RIGHT PARENTHESIS
RIGHT PARENTHESIS

4

Pyth, 41

$from unicodedata import name as neg$Vz_N

ใช้ในตัวเช่นเดียวกับคำตอบของงูหลาม mbomb007 โปรดทราบว่าสิ่งนี้ไม่สามารถดำเนินการออนไลน์ได้เนื่องจาก$ผู้ให้บริการไม่ปลอดภัย


4

C ++ 14, 1043 1,000 998 996 972 ไบต์

วิธีแก้ปัญหาที่แปลกประหลาดใน C ++ 14:

#include<iostream>
#include<map>
#define b cout
#define d string
#define e },{
using namespace std;char l='\n';d s[]{"DIGIT ","LATIN CAPITAL LETTER ","LATIN SMALL LETTER "};map<char, d> m{{' ',"SPACE"e'!',"EXCLAMATION MARK"e'\"',"QUOTATION MARK"e'#',"NUMBER SIGN"e'$',"DOLLAR SIGN"e'%',"PERCENT SIGN"e'&',"AMPERSAND"e'\'',"APOSTROPHE"e'(',"LEFT PARENTHESIS"e')',"RIGHT PARENTHESIS"e'*',"ASTERISK"e'+',"PLUS SIGN"e',',"COMMA"e'-',"HYPHEN-MINUS"e'.',"FULL STOP"e'/',"SOLIDUS"e':',"COLON"e';',"SEMICOLON"e'<',"LESS-THAN SIGN"e'=',"EQUALS SIGN"e'>',"GREATER-THAN SIGN"e'?',"QUESTION MARK"e'@',"COMMERCIAL AT"e'[',"LEFT SQUARE BRACKET"e'\\',"REVERSE SOLIDUS"e']',"RIGHT SQUARE BRACKET"e'^',"CIRCUMFLEX ACCENT"e'_',"LOW LINE"e'`',"GRAVE ACCENT"e'{',"LEFT CURLY BRACKET"e'|',"VERTICAL LINE"e'}',"RIGHT CURLY BRACKET"e'~',"TILDE"}};int main(){d str;getline(cin,str);for(char c:str){islower(c)?b<<s[2]<<(char)(c-32):isupper(c)?b<<s[1]<<c:isdigit(c)?b<<*s<<c:b<<m.at(c);b<<l;}}

ขอบคุณ kirbyfan64sos สำหรับการตีสองไบต์


คุณสามารถทำ*sแทนs[0]?
kirbyfan64sos

ได้แน่นอน! พลาดไปโดยสิ้นเชิง
sweerpotato

3

CJam, 517

l{i32-["SPACE""EXCLAMA""TION MARK":T+"QUOTA"T+"NUMBER DOLLAR PERCENT"{S/" SIGN"am*~}:H~"AMPERSAND""APOSTROPHE""LEFT PARENTHESIS":L"RIGHT ":R1$5>+"ASTERISK""PLUS"H"COMMA""HYPHEN-MINUS""FULL STOP""SOLIDUS":D"DIGIT "a"ZERO ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE"S/m*~"COLON""SEMI"1$+"LESS-THAN EQUALS GREATER-THAN"H"QUES"T+"COMMERCIAL AT""CAPITA"{["LATIN "\"L LETTER "]a'[,65>m*~L5<}:Z~"SQUARE BRACKET":Q+"REVERSE "D+RQ+"CIRCUMFLEX ACCENT""LOW LINE""GRAVE"2$A>+"SMAL"Z"CURLY"33$B>+:C+"VERTICAL LINE"RC+"TILDE"]=N}/

เวอร์ชั่นออนไลน์

ฉันได้ลองวิธีแก้ไขปัญหาที่แตกต่างกัน แต่เพียงเก็บชื่อทั้งหมดไว้ในอาร์เรย์ขนาดใหญ่ดูมีประสิทธิภาพมากที่สุด

นี่คือโปรแกรม CJam ตัวจริงของฉันโดยวิธี


3

C ++ 14 716 706 704

#include<iostream>
char*q,x,b[584],*t=b,a[]=R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",*s=a;int c,z,l='{';int main(){for(;x=*s++;)if(z=x-32,x>96)*t++=x<l?z:"- "[x%l];else for(c=z*95+*s++-32,q=t-c/13,x=3+c%13;x--;)*t++=*q++;while(std::cin.get(x)){for(s=b,z=0,c=x<65?x-32:x<91?z=33:x<97?x-57:x<l?z=40:x-82;c--;)while(*s++);auto&o=std::cout<<s;(z?o.put(x&~32):o)<<"\n";}}

รุ่นสด

ด้วยพื้นที่ว่างบางส่วน:

#include <iostream>

// a is compressed using an LZ like compression scheme
char *q, x, b[584],
    *t = b,
    a[] =
        R"(space}exclamation|mark}quot"-number|sign}dolla!apercent!mam"%sand}apostrophe}left|par%3hesis}righ"Wasterisk}plus*<comma}hy)#n{minus}full|stop}solid"Ldigit|zero!Tone!Gtw"kthre#&four!Uiv#&six!Heve>^!_e6r!ani,1colon}semi!Fless{than8Eequal:$grea<s$2quesMj>EJoial|at}lQ9n|capit"?let('|Jes+\re|bracket}r5urse|C5M?%2circumflex|acXR}low|l:bgrave#'0=smaNy0+curly*s/Ytic4z)$/\$itilde)",
    *s = a;

int c, z, l = '{';

int main() {
    // Decompress from a into b
    for (; x = *s++;)
        if (z = x - 32, x > 96)
            *t++ = x < l ? z : "- "[x % l];
        else
            for (c = z * 95 + *s++ - 32, q = t - c / 13, x = 3 + c % 13; x--;) *t++ = *q++;

    // Process input a char at a time, performing a lookup into b for the c'th null separated string
    while (std::cin.get(x)) {
        for (s = b, z = 0,
            c = x < 65 ? x - 32 : x < 91 ? z = 33 : x < 97 ? x - 57 : x < l ? z = 40 : x - 82;
             c--;)
            while (*s++)
                ;
        auto& o = std::cout << s;
        (z ? o.put(x & ~32) : o) << "\n";
    }
}

สตริงที่aบีบอัดบีบอัดไปที่:

พื้นที่} อัศเจรีย์ | เครื่องหมาย} ใบเสนอราคา | เครื่องหมาย} จำนวน | เข้าสู่ระบบ} ดอลลาร์ | เข้าสู่ระบบ} ร้อยละ | เข้าสู่ระบบ} เครื่องหมาย} apostrophe} ซ้าย | วงเล็บ} ขวา | วงเล็บ} ดอกจัน} บวก | เข้าสู่ระบบ} จุลภาค} ยัติภังค์ {ลบ} เต็ม | หยุด} โซลิดัส} หลัก | ศูนย์} หลัก | หนึ่ง} หลัก | สอง} หลัก | สาม} หลัก | สี่} หลัก | ห้า} หลัก | หก} หลัก | เจ็ด} หลัก | แปด} หลัก | เก้า} ลำไส้ใหญ่} อัฒภาค} น้อย {กว่า | สัญญาณ} เท่ากับ | เข้าสู่ระบบ} มากขึ้น {กว่า | เข้าสู่ระบบ} คำถาม | เครื่องหมาย} พาณิชย์ | ที่} ละติน | ทุน | จดหมาย |} ซ้าย | ตาราง | วงเล็บ} กลับ | โซลิดัส} ขวา | ตาราง | วงเล็บ} หมวก | สำเนียง} ต่ำ | สาย หลุมฝังศพ} |} สำเนียงภาษาละติน | ขนาดเล็ก | จดหมาย |} ซ้าย | หยิก | วงเล็บ} แนวตั้ง | เส้นขวา} | หยิก | วงเล็บ} ตัวหนอน

และในระหว่างการบีบอัด}จะถูกแทนที่ด้วย\0, |มี(เว้นวรรค) และ{ด้วย-และตัวอักษรตัวพิมพ์เล็กจะถูกแปลงเป็นตัวพิมพ์ใหญ่

สตริงถูกบีบอัดสไตล์ LZ เป็นตัวอักษร[a-~]หรืออักขระสองตัวที่เข้ารหัสออฟเซ็ต / ความยาวให้ตรงกันก่อนหน้านี้ในสตริง


3

Clojure, 56 ไบต์

(doseq[c(read-line)](println(Character/getName(int c))))

แรงบันดาลใจจากคำตอบของ @ peter ใช้ Clojure สำหรับการทำงานร่วมกันของ Java


3

Perl - 894 ไบต์

สร้างขึ้นด้วยมือด้วยความรัก การตีกอล์ฟครั้งแรกใน Perl เพื่อเป็นการแนะนำเคล็ดลับใด ๆ

$_=$ARGV[0];s/(.)/$1\n/g;s/([A-Z])/& CAPITAL' $1/g;s/([a-z])/& SMALL' \U$1/g;s/,/COMMA/g;s/& /LATIN /g;s/' / LETT, /g;s/&/AMP,SAND/g;s/'/APOSTROPHE/g;s/ \n/SPACE\n/g;s/\*/AST,ISK/g;s/-/HYPHEN-MINUS/g;s/\./FULL STOP/g;s/@/COMM,CIAL AT/g;s/~/TILDE/g;s/:/&/g;s/;/SEMI&/g;s/&/COLON/g;s/\|/V,TICAL&/g;s/_/LOW&/g;s/&/ LINE/g;s/\^/CIRCUMFLEX&/g;s/`/GRAVE&/g;s/&/ ACCENT/g;s/\//&/g;s/\\/REV,SE &/g;s/&/SOLIDUS/g;s/!/!&/g;s/"/"&/g;s/\?/?&/g;s/!/EXCLAMA/g;s/"/QUOTA/g;s/\?/QUES/g;s/&/TION MARK/g;s/#/NUMB,&/g;s/\$/DOLLAR&/g;s/%/P,CENT&/g;s/\+/PLUS&/g;s/</LESS-THAN&/g;s/=/EQUALS&/g;s/>/GREAT,-THAN&/g;s/&/ SIGN/g;s/\(/<&/g;s/\)/>&/g;s/&/ PARENTHESIS/g;s/\[/<&/g;s/\]/>&/g;s/&/ SQUARE'/g;s/{/<&/g;s/}/>&/g;s/&/ CURLY'/g;s/'/ BRACKET/g;s/</LEFT/g;s/>/RIGHT/g;s/0/&Z,O/g;s/1/&ONE/g;s/2/&TWO/g;s/3/&THREE/g;s/4/&FOUR/g;s/5/&FIVE/g;s/6/&SIX/g;s/7/&SEVEN/g;s/8/&EIGHT/g;s/9/&NINE/g;s/&/DIGIT /g;s/,/ER/g;print;

1

ตัวคูณ 58 ไบต์

[ readln [ char>name "-"" " replace >upper print ] each ] 

ค่อนข้างง่าย ทำสิ่งเดียวกันกับ Java และ Perl 6 คำตอบ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.