รับข้อมูลจากแป้นพิมพ์แบบตัวอักษร

รับข้อมูลจากแป้นพิมพ์แบบตัวอักษร

การรับข้อมูลเข้าทางแป้นพิมพ์ทีละตัวอักษรสามารถใช้เมธอดที่อยู่ใน System Class ได้ทันที การรับข้อมูลนั้นจะรับจากแป้นพิมพ์ทุกตัวอักษร แต่จำเป็นต้องสั่ง throws IOException หรือใช้ try catch() คลุมความผิดพลาดที่อาจเกิดขึ้นจาก read()

ขั้นตอนการรับข้อมูลผ่านแป้นพิมพ์แบบตัวอักษร

  1. import java.io.*;
  2. public static void main(String args[]) throws IOException {
  3. int buf1 = System.in.read(); // output is integer
  4. char buf2 = (char)System.in.read(); // output is character
  5. char buf3 = System.in.read(); // compile error : loss precision
ตัวอย่าง 3.1 รับข้อมูลทีละตัวอักษร 3 ตัวอักษรมาแสดงผล
import java.io.*;

class x {

public static void main(String args[])

throws IOException {

char buf1;

buf1 = (char)System.in.read();

System.out.println(“Output is “+buf1);

int buf2 = System.in.read();

System.out.println(“Output is “+buf2);

buf2 = System.in.read();

System.out.println(“Output is “+buf2);

}

}

ตัวอย่างผลลัพธ์

a

Output is a

Output is 13

Output is 10

 

 

 


ตัวอย่าง 3.2 รับข้อมูล 2 ตัวอักษรจากแป้นพิมพ์

import java.io.*;

class x {

public static void main(String args[]) throws IOException {

int buf;

  buf = System.in.read();

  System.out.println(buf + “:”);

  buf = System.in.read();

  System.out.println(buf);

  System.out.println(“.”);

}

}

ตัวอย่าง 3.3 นำตัวอักษรที่รับเข้ามาไปประมวลผล

import java.io.*;

class x {

public static void main(String args[]) throws IOException {

char buf1,buf2;

buf1 = (char)System.in.read(); // a

buf2 = (char)System.in.read();  // b

System.out.println(“Out=” + buf1 + buf2); // Out=ab

System.out.println(buf1 + buf2); // 195

System.out.println(buf1 + buf2 + “5” + buf2); // 1955b

}

}

ตัวอย่าง 3.4 รับข้อมูลจนกว่าจะเป็นตัวอักษร 0 โดยแสดงผลเป็นรหัสแอสกี้

– ต้องกดปุ่ม enter เพื่อสั่งสิ้นสุดการ Read

import java.io.*;

class x {

public static void main(String args[]){

System.out.println(“Get until receive 0 [hidden is 13, 10]”);

int buf = 0;

  do {

try { buf = System.in.read(); }

catch(IOException ex) { System.out.println(ex); }

    System.out.println(“Output is “+buf);

  } while (buf != 48);

}

}

ตัวอย่าง 3.5 รับข้อมูลจนกว่าจะเป็นตัวอักษร 0 โดยแสดงผลเป็นตัวอักษร

– รับข้อมูลแบบ character ทีละ 1 ตัวอักษร

– รับต่อกันไปจนรับตัวอักษร 0 จึงหยุดการทำงาน

import java.io.*;

class x {

public static void main(String args[]) throws IOException {

char buf;

  do {

    buf = (char)System.in.read();

    System.out.println(“Output is “+buf);

  } while (buf != ‘0’);

}

}