สายอักขระ เขียนโปรแกรม Java เบื้องต้น.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Suphot Sawattiwong Array ใน C# Suphot Sawattiwong
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Lab Part Nattee Niparnan
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Object and classes.
รับและแสดงผลข้อมูล.
05_3_Constructor.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
SCC : Suthida Chaichomchuen
การสืบทอด (Inheritance)
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
สตริง (String).
Inheritance การสืบทอดคลาส
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
ทำงานกับ File และStream
ตัวแปรในภาษา JavaScript
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
ตัวแปรกับชนิดของข้อมูล
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
Week 12 Engineering Problem 2
การประมวลผลสายอักขระ
Object-Oriented Programming
บทที่ 3 Class and Object (2).
คำสั่งรับค่าและฟังก์ชันทางคณิตศาสตร์
โครงสร้างภาษาซี #include <stdio.h> void main() {
บทที่ 2 การแสดงผลและรับข้อมูล
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Java collection framework
Java Programming Java Structure and Datatype,Variable
การแสดงผลและการรับข้อมูล (Data Output and Input)
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Object-Oriented Programming
การกระทำทางคณิตศาสตร์
ตัวแปร และชนิดข้อมูล.
การจัดการกับความผิดปกติ
Variable, Data type, Expression, Operators Data input, Data output
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
ใบสำเนางานนำเสนอ:

สายอักขระ เขียนโปรแกรม Java เบื้องต้น

หัวข้อ สายอักขระ คลาส String คลาส StringBuffer

สายอักขระ

สายอักขระ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World! 2"); }

ประโยชน์ของสายอักขระ บอกผลลัพธ์ของการคำนวณให้เราทราบ รายงานขั้นตอนการทำงานของโปรแกรม เก็บข้อมูลที่เป็นตัวอักษร ตัวเลข สัญลักษณ์

คลาส String

การใช้งานสตริง ประกาศตัวแปร String name; กำหนดค่า name = new String("Smith"); แสดงผล System.out.println(name);

เรฟเฟอร์เรนซ์ (Reference) int n n เป็นข้อมูลชนิดจำนวนเต็ม String name ไม่ได้หมายความว่า name เป็นวัตถุ String แต่เป็นการบอกว่า name เป็นเรฟเฟอร์เรนซ์ (reference) หรือตัวที่ใช้อ้างอิงไปที่วัตถุ String

วัตถุและเรฟเฟอร์เรนซ์

การสั่งงานสตริง รูปแบบ เรฟเฟอร์เรนซ์.ข้อความ(สิ่งที่ส่งไปพร้อมกับข้อความ) ตัวอย่าง name.length(); name.charAt(1);

เมธอดที่น่าสนใจ length() ความยาวของสตริง charAt() ตัวอักษรในตำแหน่งที่กำหนด ตัวอักษรตัวแรกคือตำแหน่งที่ 0 ตัวอักษรสุดท้ายคือ length() - 1 indexOf() ตำแหน่งของสายอักขระในสตริง substring() สตริงที่อยู่ในช่วงที่กำหนด

ตัวอย่างการใช้เมธอด public class StringMessage { public static void main(String[] args) { String name = "Smith"; System.out.println(name.length()); System.out.println(name.charAt(2)); System.out.println(name.indexOf("t")); System.out.println(name.substring(1, 3)); }

การเปรียบเทียบสตริง (แบบผิดๆ) public class StringCompareInCorrect { public static void main(String[] args) { String name1 = new String(“Smith”); String name2 = new String(“Smith”); System.out.println(name1 == name2); }

การเปรียบเทียบสตริง (แบบผิดๆ)

การเปรียบเทียบสตริง public class StringCompare { public static void main(String[] args) { String name1 = new String(“Smith”); String name2 = new String(“Smith”); System.out.println(name1.equals(name2)); }

การต่อสตริง เมธอด concat() เครื่องหมาย + เครื่องหมาย +=

เมธอด concat() public class StringConcat1 { public static void main(String[] args) { String name = "Smith"; String lastName = " Brown"; String fullName =name.concat(lastname); System.out.println(fullName); }

เครื่องหมาย + public class StringConcat2 { public static void main(String[] args) { String name = "Smith"; String lastName = " Brown"; String fullName = name + lastName; System.out.println(fullName); }

เครื่องหมาย += public class StringAppend { public static void main(String[] args) { String name = "Smith"; String lastName = " Brown"; name += lastName; System.out.println(name); }

ความมั่นคงของสตริง (Immutability) ไม่สามารถเปลี่ยนแปลงค่าของสายอักขระได้เลยหลังจากที่เราได้สร้างมันขึ้นมา ในบรรดาข้อความ (message) ที่วัตถุ String รู้จักนั้น ไม่มีข้อความใดเลยที่ทำให้สายอักขระเปลี่ยนแปลงได้ length() substring()

สตริงไม่เปลี่ยนแปลง String str; str = new String("Smith"); str = new String("John");

สตริงไม่เปลี่ยนแปลง String str = "Smith"; System.out.println(str.toUpperCase()); System.out.println(str);

สตริงไม่เปลี่ยนแปลง public class StringDeficiency { public static void main(String[] args) { String str = "A"; for (int i = 0; i < 100; i++) str += "A"; System.out.println(str); }

สตริงไม่เปลี่ยนแปลง

คลาส StringBuffer

ข้อดีของ String Buffer ประหยัดทั้งหน่วยความจำและเวลาในการประมวลผล วัตถุ String Buffer สามารถเปลี่ยนแปลงค่าในสายอักขระที่มันนำเสนอได้เอง โดยไม่ต้องสร้างวัตถุขึ้นมาใหม่

เมธอดที่น่าสนใจ append() การต่อสายอักขระ insert() การแทรกสายอักขระ delete() การลบสายอักขระย่อย

ตัวอย่างการใช้เมธอด StringBuffer sb = new StringBuffer("John"); System.out.println(sb); sb.append(" Hunter"); sb.insert(4, "y"); sb.delete(2, 4);

ทดลองเปลี่ยนแปลง String Buffer public class StringBufferAppend { public static void main(String[] args) { StringBuffer sb; sb = new StringBuffer("A"); for (int i = 0; i < 100; i++) sb.append("A"); System.out.println(sb); }

ทดลองเปลี่ยนแปลง String Buffer

String Builder มีเมธอดที่เหมือนกับ String Buffer String Buffer ปลอดภัยสำหรับการทำงานในแบบ multiple threads

Java Doc

เอกสารอ้างอิง

แหล่งเอกสาร http://java.sun.com/j2se/1.5.0/docs/api http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html

สรุป

สรุป สายอักขระมีไว้เพื่อการแสดงผลข้อความ สายอักขระได้ถูกนำเสนอด้วยวัตถุ String และ String Buffer เราสามารถใช้งานวัตถุได้โดยผ่านทางเรฟเฟอร์เรนซ์ เรฟเฟอร์เรนซ์เปรียบเสมือนรีโมทคอนโทรล วัตถุเปรียบได้กับสิ่งที่รีโมทนั้นควบคุมอยู่ การส่งข้อความหาวัตถุเปรียบได้กับการกดปุ่มรีโมทคอนโทรล

สรุป การเปรียบเทียบสตริงทำได้โดยการส่งข้อความ equals( ) การต่อสตริงนอกจากจะใช้การส่งข้อความ concat() แล้ว ยังสามารถใช้เครื่องหมาย + ได้อีกด้วย สายอักขระของวัตถุ String ไม่สามารถถูกเปลี่ยนแปลงได้ ถ้าต้องการเปลี่ยนแปลงค่าในสายอักขระบ่อยๆ ควรใช้วัตถุ String Buffer

แบบฝึกหัดท้ายหน่วยการเรียนรู้ที่ 4 1. สร้างวัตถุ String ขึ้นมาหนึ่งตัว ภายในบรรจุคำว่า "Sawasdee Thailand" แล้วแสดงสายอักขระนั้น 2. แสดงสายอักขระเหมือนในข้อ 1 แต่เปลี่ยนไปใช้วัตถุ String Buffer แทน 3. กำหนดข้อความเป็น http://www.abc.com/index.html ให้เขียนโปรแกรมที่พิมพ์ตำแหน่งของเครื่องหมาย / ทุกตัว

แบบฝึกหัดท้ายหน่วยการเรียนรู้ที่ 4 4. สร้างวัตถุ String ขึ้นมา 2 ตัว และให้ทำการเปรียบเทียบด้วยเครื่องหมาย == แล้วให้ผลลัพธ์เป็นจริง 5. สร้างวัตถุ StringBuffer และทดสอบว่าการเปรียบเทียบด้วย เครื่องหมาย == และเมธอด equals() ให้ผลลัพธ์เหมือนหรือต่างกับวัตถุ String อย่างไรบ้าง