සෑහෙන කාලයක් නිවාඩුවක් ගත්තා නේද? අවුලක් නෑ.දැන් අපි පටන් ගමු ජාවා වල Characters කියන ඩේටා ටයිප් ආකාරය.මේකත් එක්ක අපි ඩේටා ටයිප් ආකාර 07 ක් කතා කරලා ඉවරයි.අපිට ඉතුරු වෙන්නේ booleans විතරයි එතකොට.
Characters ඩේටා එකක් සේව් කරගන්න අපි යොදා ගන්නේ char කියන keyword එක.මේ Characters ගැන කියන්න පොඩි විස්තරයක් තියෙනවා.ඊට කලින් අපි බලමු char-චා ඩේටා ටයිප් ඒකෙන් වේරියබල් එකක් ඩික්ලෙයාර් කරලා. මෙන්න මෙහෙමයි කරන්නේ.
char letter = 'A' ;
char කියන ඩේටා ටයිප් අකාරයේ letter කියන වේරියබල් එකට A කියන අගය initialize-ඉනිශියලයිස් කරනවා.මෙහිදී සැලකිය යුතු කරුණු දෙකක් තියෙනවා.
1. දෙන අගය එක Character එකක් විය යුතුයි.
2. දෙන අගය ' ' තුල ලබා දිය යුතුයි. (සමහර අවසථා වලදී අදාළ නොවේ.කියලා දෙන්නම්).
හරි.Characters ගැන කියන්නම් කිව්වනේ.දැන් බලමු එක.C / C++ කට්ටියට ටිකක් ඔලුව හදා ගන්න වෙනවා.
ටිකක් වෙනස් .C / C++ char වලට වඩා ජාවා වල char වල වෙනස්කමක් තියෙනවා.මොනවද මේ Characters? ජාවා Characters භාවිත කරන්නේ unicode-යුනිකෝඩ් ආධාරයෙන්.යුනිකෝඩ් කියන්නේ මොනාද මේ? ඒ කියන්නේ ප්රමුඛව ලොව භාවිත වෙන humen languages(Latin, Greek, Arabic, Katakana) වල අකුරු තමා යොදාගන්නේ.ඉතින් මම මේ කියන යුනිකෝඩ් වල ඔක්කොම Characters 65,536 තියෙනවා. ඒ කියන්නේ මේ රේන්ජ් එක දරා ගන්න නම් ජාවා 16bit වෙන්න ඕනේ. C / C++ වල නම් char 8bit.යුනිකෝඩ් ගැන දැනගන්න යන්න :
http://www.unicode.org/standard/WhatIsUnicode.html
http://en.wikipedia.org/wiki/Unicode
හරි එහෙනම් දැන් අපි පොඩි උදාහරණයකට යමු.දැන් අපි පාවිච්චි කරන්නේ NetBeans.මේ ගැන හැමෝම දන්නවා ඇති කියල හිතනවා.NetBeans ගැන පොඩි හැඳින්වීමක් ඊළඟ ලිපියෙන් කරන්නම්.
බලමුකෝ මොකද්ද මේ කෝඩ් එක කියලා.අපි මුලින්ම char ch1, ch2; ස්ටේට්මන්ට් එක මගින් ch1 හා ch2 කියන්නේ char ආකාරයේ ඩේටා ටයිප් දෙකක් කියලා කියල තියෙනවා .ඒ කියන්නේ ch1 හා ch2 declare-ඩික්ලෙයාර් කරලා තියෙනවා.තාම අගයන් දුන්නේ නෑ.ඊළඟට මම ch1 කියන වේරියබල් (වේරියබල් ගැන දැන ගන්න යන්න මෙතනට ) එකට අගයක් දෙනවා 85 කියලා. මෙතැනදී අපි 85 දෙනකොට ' ' දාන්නේ නෑ.බලන්න මං මුලින් කියපු කරුණු දෙකෙන් දෙවැනි කරුණ.එතන කියනවා මම, සමහර වස්ථා වලදී අපි char කියල වේරියබල් එක ඩික්ලෙයාර් කලාට ' ' දාන්නේ නෑ කියලා.ඊළඟට ch2 වෙරියබල් එකට දෙනවා Y කියලා.ඊට පස්සේ System.out.println මෙතඩ් එක හම්බෙනවා.එකේ වෙන වැඩ ටික මම මුලින්ම කියලා දීලා තියෙනවා.ඒවුනාට මම පහලින් තියෙන කෝඩ් ඒකෙන් ආයේ මතක් කරලා දෙන්නම්.දැන් අපි බලමු මේක රන් කලාම ලැබෙන අවුට්පුට් එක මොකද්ද කියලා.
අහා.. මේ මොකද වෙලා තියෙන්නේ අපි 85 දුන්නම අවුට්පුට් එකට අකුරක් ලැබිලා.බලන්න මෙන්න මේ වගුව දිහා.
දැන් දැක්කද 85 ට තියෙන අකුර U කියලා.කොහොමද එහෙම උනේ?මොකද්ද මේ වගුව? අපි මේකට කියන්නේ ASCII Table-ඇස්කි ටේබල් කියලා.මේ අගයන්ට අනුකුලව ඔයා දෙන ඉලක්කමට අදාලව අකුර අපිට අවුට්පුට් කරලා දෙනවා.ASCII ගැන මම මෙතන කියන්න යන්නේ නෑ.මෙතන අපි char යටතේ අංකයක් දැම්මට ඒක integer වෙන්නේ එහෙම නෑ.හැබැයි ඉතින් integer වගේ තමා වැඩ කරන්නේ ටිකක්.මොකද ඔයාට පුළුවන් මේ char අගයන් increment කරන්න.ඒ කියන්නේ අගයන් එකින් එක වැඩි කරන්න.integer අගයන් එකින් එක වැඩිකරන increment operators ගැන අපි වෙනම ඉස්සරහට කතා කරනවා.දැනට බලමුකෝ මේ උදාහරණය.
දැන් බලමු මොකද්ද රන් කලාම අපිට ලැබෙන අවුට්පුට් එක.
කොහොමද මෙහෙම වුනේ?දැන් බලමු කොහොමද මේක උනේ කියල.අපි පුලින්ම char ch1; මගින් ch1 කියන්නේ char ආකාරයේ ඩේටා ටයිප් එකක් බව කියල තියෙනවා.ඒ කියන්නේ ch1 declare-ඩික්ලෙයාර් කරලා තියෙනවා.තාම අගයක් දුන්නේ නෑ.ඊළඟට මම ch1 කියන වේරියබල් (වේරියබල් ගැන දැන ගන්න යන්න මෙතනට ) එකට අගයක් දෙනවා A කියලා. ඊළඟට මම System.out.println මෙතඩ් එක මගින් දැනට ch1 වල අගය ප්රින්ට් කරලා බලනවා.මම " " අතරින් දීල තියෙන ch1 contains කියන කොටස නිකන්ම ප්රින්ට් වෙනවා.මොකද " " ඇතුලේ තියෙන ඕනෑම දෙයක් අපි System.out.println එකට දුන්නම ඒවා කිසිම අවුලක් නොකර ප්රින්ට් වෙනවා.ඊළඟට මම + සලකුණ දාල තියෙනවා.මේකෙන් මොකද්ද කොරන්නේ? ඒක ආයේ මතක කරලා දෙන්නම්.එකතු කිරීමේ සලකුණ අපි දන්නේ ඉලක්කම් එකතු කරන්න උනාට මෙතන අපි කරන්නේ " " ඇතුලේ දීල තියෙන අකුරු ටිකක් සහ වෙරියබල් එකක් එකට එක පේලියට ප්රින්ට් කරන එක.
" " ඇතුලේ අපි දෙන වචනයකට හෝ ඉලක්කමකට හෝ වචන ගොඩකට අපි පොදුවේ කියනවා String-ස්ට්රින්ග් එකක් කියලා.එතකොට මේ + සලකුණට අපි කියනවා string concatenation-ස්ට්රින්ග් කන්කටිනේෂන් එක කියල.ඕකෙන් කරන්නේ දැන් අපි හරියටම කිව්වොත් වේරියබල් එකක් සහ ස්ට්රින්ග් එකක් එකට බැඳලා ලං කරලා තියා ගන්නවා.+ පස්සේ තියෙන්නේ ch1 හන්දා අපිට ch1 contains වලින් පස්සේ ch1 වලට අදාළ අගය වන A ප්රින්ට් වෙනවා.ඊළඟට අපිට පහල පේලියට ගියාම හම්බෙනවා මෙහෙම දෙයක්.
ch1++
මේකෙන් මොකද්ද කියන්නේ.මේ ++ සලකුණට අපි කියනවා increment operator එකක් කියල.ඒ ගැන ඉස්සරහට අපි කරනවා.මේකෙන් කරන්නේ සාමාන්යයෙන් integer අගයක් එකකින් නංවලා එහෙමත් නැත්නම් එකකින් වැඩි කරලා අවුට්පුට් එක දෙන එක.(10 තිබුනොත් 11 දෙනවා.52 තිබුනොත් 53 දෙනවා.)මෙතන උනේ A අකුර එකකින් නංවලා B අවුපුට් එකට දුන්නා.ඒ වුනාට char කියන්නේ integer නෙවේනේ.කොහොමද එකක් වැඩි කරලා දෙන්නේ? ඒක තමා මම උඩදී කිව්වේ char නිකන් integer වගේ වැඩ කරනවා කියලා.මොකද increment කිරීමේ හැකියාව මෙයාලට තියෙන හන්දා.ඇත්තටම ගත්තොත් increment වෙන්නේ මෙයාලගේ ASCII අගය.බලන්න උඩ වගුව.ඒකෙ A අකුරට අදාළ ASCII අගය 65. B අකුරට අදාළ ASCII අගය 66 .පේනවනේ අගය එකකින් වැඩි කරලා.ඔන්න ඔය විදියට තමා ජාවා Characters වැඩ කරන්නේ ඊළඟ ලිපියෙන් Boolean ගැන ඉගෙන ගමු.





No comments:
Post a Comment