Friday, September 14, 2012

Java වැඩසටහනකට user inputs ලබා දීම (Scanner එක භාවිතය)


අද අපි කතා කරන්න යන්නේ  java programme  එකකට එය  run වන විට user inputs  ලබා දෙන ආකාරය. මේ සදහා එක Scanner  එක  භාවිතය,  command line arguments ලෙස  user inputs  ලබා දීම ,buffered reader  එක  භාවිතය  වැනි විවිද    ක්රම  යොද ගන්න පුලුවන්.අපි මේ  post එකෙන් scanner  එක ගැන  කතා කරමු.
                                                                                                                                                                                            
අපි  මුලින්ම  scanner  එක ගැන කතා කරමු.මම පහත ලියා තිබෙන code  එක ඇසුරින්  scanner එක ගැන පැහැදිලි කරල දෙන්නම්.

import java.util.Scanner;
public class ScannerExample {
  public static void main(String[] args) {
     Scanner   scanObject=new    Scanner(System.in);
     
     System.out.print("Enter  your name : ");
     String  name= scanObject.nextLine();
     System.out.println("hello  "+ name);

     System.out.print("Enter  your age : ");
     int  age = scanObject.nextInt();
     System.out.println("you are   " +  age  + " years old .");
  }
}

මෙහි  output එක  :


දැන් අපි බලමු මෙම code  එකෙන්  සිදු වන්නෙ මොකක්ද කියලා.

අපි user input  එකක් ගන්න Scanner  එක භාවිතා කර්න විට  import  java.util.Scanner ලෙස මුලින්ම  util package  එකෙ ඇති  Scanner  class එක  import කල යුතුයි.
ඉන්පසු import  කරගත්  Scanner class එක භාවිත කොට ගෙන object  එකක් සාදා ගත යුතුයි.එසේ සාදා ගන්නා  object එකට  System.in  ලෙස  parameter එකක්ද  pass කල යුතුයි. ඉහත එකේදි අපි මෙය
Scanner   scanObject=new    Scanner(System.in);
ලෙස සිදු කර ඇත.  මෙහි  scanObject යනු අපි සදා ගත් object  එකයි.
ඉන්පසු ඉහත code  එකේ  
 System.out.print("Enter  your name : ");  , System.out.print("Enter  your age : ");
කොටස්  මගින් අපි  user  ට ඔහු විසින්  ලබා දිය යුතු input  එක ගැන ඉගියක් ලබා දෙයි.
Scanner එක භාවිතා කොට  String එකක් input  එක ලෙස   ලබා ගත යුතු නම්  next()  හෝ nextLine() යන  method  දෙකෙන් එකක් භාවිත කල හැක. ඉහත code  එකේදි අපි මෙය
String  name= scanObject.nextLine();   ලෙස සිදු කර ඇත.


Scanner එක භාවිතා කොට  Integer  එකක් input  එක ලෙස   ලබා ගත යුතු නම්  nextInt() යන  method  එක භාවිත කල හැක. ඉහත code  එකේදි අපි මෙය
int  age = scanObject.nextInt();   ලෙස සිදු කර ඇත.
සමහරවිට ඔබට මෙහිදී සිදු කල object  සැදීම methods   භාවිතා කිරීම ගැටලු සහගත වෙන්න පුලුවන්. ඒ මොකද අපි තවම  object oriented  කියන කොටස කරල  නැති නිසා.ඒත් ඉදිරියෙදි  අපි ඒ ගැන කත කරන්න බලපොරොත්තු වෙනවා. Object oriented පිලිබදව අවබොදයක්   ලබ ගත් පසු ඔබට මෙහි නොතෙරුනු කොටස් පහසුවෙන් වටහා ගත හැකි වේවි.

මම හිතනව අපි මේ  code  එකේදී   util package එකේ තියන  Scanner class එක  import කලේ ඇයි කියල ඔබට තෙරෙනව ඇති කියල. අපි එහෙම කරේ Scanner class එකේ මීට පෙර සකසා ඇති  methods අපේ  code එකේදි භාවිතා කිරීම සදහයි. (අපි මෙහිදි Scanner class එකේ තියන next(), nextInt()  සහ  nextLine()කියන methods අපේ code එකෙදි භවිතා කලා.)

අපි ඊලග post  එකේදි  user inputs ලබා දිය හැකි තවත් විදියක් කතා කරමු. මෙ ගැන ගැටලු තියනව නම් අපිට කියන්න.

By Hasitha Thamaranga


1 comment: