Uses for Special Characters in Java Code
Join the DZone community and get the full member experience.
Join For FreeEver wondered how you can write code like this in Java?
It is common to see a leading underscore like _field or an underscore in a constant like UPPER_CASE. In Java the $ is also used in class names and accessor method names.
The SCJP has notes which state
And if you try the following you may find it compiles.
While this is interesting, does it have a use? Recently I found one.
I have an object which represents a column, and this column has a value for that row. The names are basically the same but I want a notation to distinguish them. So I have something like
This way I can see with is tp the column, and which is the value.
Interestingly the currency characters are valid as well.
prints
36 : $
95 : _
162 : ¢
163 : £
164 : ¤
165 : ¥
1547 : ؋
2546 : ৲
2547 : ৳
2555 : ৻
2801 : ૱
3065 : ௹
3647 : ฿
6107 : ៛
8255 : ‿
8256 : ⁀
8276 : ⁔
8352 : ₠
8353 : ₡
8354 : ₢
8355 : ₣
8356 : ₤
8357 : ₥
8358 : ₦
8359 : ₧
8360 : ₨
8361 : ₩
8362 : ₪
8363 : ₫
8364 : €
8365 : ₭
8366 : ₮
8367 : ₯
8368 : ₰
8369 : ₱
8370 : ₲
8371 : ₳
8372 : ₴
8373 : ₵
8374 : ₶
8375 : ₷
8376 : ₸
8377 : ₹
43064 : ꠸
65020 : ﷼
65075 : ︳
65076 : ︴
65101 : ﹍
65102 : ﹎
65103 : ﹏
65129 : ﹩
65284 : $
65343 : _
65504 : ¢
65505 : £
65509 : ¥
65510 : ₩
if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)
Background
Underscores has long been using in C like language such as Java to distinguish fields and method names.It is common to see a leading underscore like _field or an underscore in a constant like UPPER_CASE. In Java the $ is also used in class names and accessor method names.
The SCJP has notes which state
Identifiers must start with a letter, a currency character ($), or a connecting character such as the underscore ( _ ). Identifiers cannot start with a number!This leads to the question; what other connecting characters are there?
What are connecting characters?
A connecting character joins two words together. This page lists ten connecting charactersU+005F | LOW LINE | _ | view |
U+203F | UNDERTIE | ‿ | view |
U+2040 | CHARACTER TIE | ⁀ | view |
U+2054 | INVERTED UNDERTIE | ⁔ | view |
U+FE33 | PRESENTATION FORM FOR VERTICAL LOW LINE | ︳ | view |
U+FE34 | PRESENTATION FORM FOR VERTICAL WAVY LOW LINE | ︴ | view |
U+FE4D | DASHED LOW LINE | ﹍ | view |
U+FE4E | CENTRELINE LOW LINE | ﹎ | view |
U+FE4F | WAVY LOW LINE | ﹏ | view |
U+FF3F | FULLWIDTH LOW LINE | _ | view |
And if you try the following you may find it compiles.
int _, ‿, ⁀, ⁔, ︳, ︴, ﹍, ﹎, ﹏, _;
While this is interesting, does it have a use? Recently I found one.
I have an object which represents a column, and this column has a value for that row. The names are basically the same but I want a notation to distinguish them. So I have something like
Column<Double>︴tp︴ = table.getColumn("tp", double.class); double tp = row.getDouble(︴tp︴);
This way I can see with is tp the column, and which is the value.
Interestingly the currency characters are valid as well.
for (int i = Character.MIN_CODE_POINT; i <= Character.MAX_CODE_POINT; i++) if (Character.isJavaIdentifierStart(i) && !Character.isAlphabetic(i)) System.out.println(i + " : " + (char) i);
prints
36 : $
95 : _
162 : ¢
163 : £
164 : ¤
165 : ¥
1547 : ؋
2546 : ৲
2547 : ৳
2555 : ৻
2801 : ૱
3065 : ௹
3647 : ฿
6107 : ៛
8255 : ‿
8256 : ⁀
8276 : ⁔
8352 : ₠
8353 : ₡
8354 : ₢
8355 : ₣
8356 : ₤
8357 : ₥
8358 : ₦
8359 : ₧
8360 : ₨
8361 : ₩
8362 : ₪
8363 : ₫
8364 : €
8365 : ₭
8366 : ₮
8367 : ₯
8368 : ₰
8369 : ₱
8370 : ₲
8371 : ₳
8372 : ₴
8373 : ₵
8374 : ₶
8375 : ₷
8376 : ₸
8377 : ₹
43064 : ꠸
65020 : ﷼
65075 : ︳
65076 : ︴
65101 : ﹍
65102 : ﹎
65103 : ﹏
65129 : ﹩
65284 : $
65343 : _
65504 : ¢
65505 : £
65509 : ¥
65510 : ₩
Java (programming language)
Database
Published at DZone with permission of Peter Lawrey, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
Using Render Log Streams to Log to Papertrail
-
Mastering Go-Templates in Ansible With Jinja2
-
AI and Cybersecurity Protecting Against Emerging Threats
-
Revolutionizing Algorithmic Trading: The Power of Reinforcement Learning
Comments