Contenu connexe
Similaire à บทที่ 10 ตัวแปรสตริ
Similaire à บทที่ 10 ตัวแปรสตริ (20)
Plus de Theeravaj Tum (13)
บทที่ 10 ตัวแปรสตริ
- 2. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
236
เนื้อหาบทเรียน
♦ Class String
♦ Method charAt
♦ Method length
♦ Method toUpperCase
♦ Method compareTo
♦ Method equals
♦ Method substring
♦ Method Concat
♦ Class StringBuffer
♦ Method append
♦ Method insert
♦ Method reverse
- 3. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
237
ตัวแปรประเภท String
เปนตัวแปรที่ทําหนาที่เก็บกลุมของตัวอักษร คาที่จะกําหนดใหกับตัวแปรประเภทนี้จะอยูใน
ภายในเครื่องหมายคําพูด “ ” ภาษาจาวาไดเตรียมคลาสสําหรับจัดการกับตัวแปรชนิดนี้ดังในคูมือ
โปรแกรม ในที่นี้จะอธิบายเพียงบาง method เทานั้น เพื่อเปนพื้นฐานใหผูเรียนสามารถศึกษา method
อื่นๆ เพิ่มเติมไดจาก คูมือโปรแกรมดังกลาวแลว
การสราง Object ของ Class String
รูปแบบที่ 1
String name1 = new String (“Pooh”);
String name2;
name2 = new String (“Minnie”);
รูปแบบที่ 2 * ใชไดเฉพาะ class String เทานั้น
String name1 = “Pooh”;
String name2;
name2 = “Minnie”;
- 4. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
238
H E L L O !
0 1 2 3 4 5
การกําหนดคาเริ่มตนใหกับ คลาส String
String a = new String(“Hello”);
String b = “Hello”;
String c = new String();
c = "abcdef";
char d[ ] = {‘H’, ‘e’, ‘l’ , ‘l’, ‘o’};
char e= ‘A’;
การกําหนดคาใหกับตัวแปรชนิด character ไมใชตัวแปรชนิด String หรือแมแตตัวแปรอารเรย
ของ character ก็ไมใชตัวแปรชนิด String
เมธอด charAt
เปนการอางถึงตัวอักขระ ณ ตําแหนงใดในString
charAt(ตําแหนง)
ทําการอางถึงแตละอักขระ ณ ตําแหนงที่ตองการใน String โดยการเรียกใชงาน method charAt(
ตําแหนง) โดยตําแหนงเริ่มตนของอักขระในตัวแปร String คือตําแหนงที่ 0
ตัวอยางการใชงาน
String x = "airplane";
System.out.println( x.charAt(2) ); // output is 'r'
เมธอด length
เปนเมธอดที่ใชในการหาความยาวของ String โดย method นี้จะสงคากลับเปนจํานวนเต็มที่
แสดงความยาวของ String
String name = “HELLO!”;
แสดงการอางถึงตําแหนงในตัวแปร String
name
name.charAt(3)
- 5. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
239
ตัวอยางการใชงาน
String x = "01234567";
System.out.println( x.length() ); // returns "8"
เมธอด toUpperCase
เปนเมธอดที่ทําการแปลงขอมูลอักขระจากตัวพิมพเล็กเปนตัวพิมพใหญทุกตัว โดย method นี้จะ
สงคากลับเปน String
ตัวอยางการใชงาน
String x = "A New Moon";
System.out.println( x.toUpperCase() ); // output is “A NEW MOON"
เมธอด compareTo
เมธอดที่ทําการเปรียบเทียบคาของ String 2 ตัววาเทากันหรือไมได โดยการเรียกใชงาน method
ตัวอยางการเรียกใชงาน
str1.compareTo( str2 )
โดย method นี้จะสงคากลับเปน 0 ถา str1 และ str2 เทากัน
คาติดลบ ถา str1 มีคานอยกวา str2
คาบวก ถา str1 มีคามากกวา str2
เมธอด equals
เมธอดที่ทําการเปรียบเทียบคาของ String 2 ตัววาเทากันหรือไมได
ตัวอยางการเรียกใชงาน
String str1 = “Kapook”;
String str2 = “Sanook”;
boolean ans ;
ans = str1.equals( str2 ) // ans = false
โดย method นี้จะสงคากลับเปนจริง เมื่อ str1 และ str2 เทากัน และสงคากลับเปน false ถา
str1 และ str2 ไมเทากัน
- 6. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
240
เมธอด substring
เมธอดนี้ทําการตัดขอความบางสวนของ String และ สงคากลับเปน String
String substring( ตําแหนงเริ่มตน,ตําแหนงสุดทาย)
ตัวอยางการใชงาน
String name1 = "HELLO-JAVA";
String name2 = name1.substring(3,6) // name2 = LO-J
เมธอด concat
เมธอดที่นําขอความมาตอกัน
String concat(String s);
ตัวอยางการใชงาน
String x = "taxi";
System.out.println( x.concat(" cab") ); // output คือ "taxi cab”
System.out.println(x.toString());// output คือ “taxi”
ในจาวาไดทําการ overloaded + และ += ซึ่งมีหลักการทํางานเหมือนกับเมธอด concat()
ตัวอยางการใชงาน
String x = "Atlantic";
x += " ocean"
System.out.println( x ); // output คือ "Atlantic ocean"
- 7. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
241
คลาส StringBuffer
เปนอีกคลาสหนึ่งที่ใชทํางานกับ String แตมีความยืดหยุนและใชงานไดหลากหลายกวา String
class ทั้งนี้ คลาส StringBuffer มี constructor ใหเลือกใชได 3 รูปแบบ ไดแก
- StringBuffer() ใชในการสราง StringBuffer ที่ไมมีขอมูลใดๆ และมีความยาวสูงสุด 16
ตัวอักษร
- StringBuffer(int length) ใชในการสราง StringBuffer ที่ไมมีขอมูลใดๆ แตความยาวจะขึ้นอยู
กับคาของ length ที่สงมาให
- StringBuffer(String str) ใชสราง StringBuffer ที่มีขอมูลตาม Argument “str” ที่สงมา โดย
ความยาวก็จะขึ้นอยูกับความยาวของ str เชนกัน
ตัวอยาง method ที่ใชในคลาส StringBuffer เชน append หรือ insert
เมธอด append
เปนเมธอดที่ทําการเพิ่มอักขระเขาไปตอทาย Stringได
public synchronized StringBuffer append(String s)
ตัวอยางการใช
StringBuffer sb = new StringBuffer("abc");
sb.append("def");
System.out.println("sb = " + sb); // output is "sb = abcdef"
- 8. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
242
เปรียบเทียบกับ คลาส String
String x = "abc";
x.concat("def");
System.out.println("x = " + x); // output คือ "x = abc“
String x = "abc";
x = x.concat("def");
System.out.println("x = " + x); // output คือ "x = abcdef"
เมธอด insert
เปนเมธอดที่ทําการแทรกอักขระเขาไปใน Stringไดโดยการเรียกใช
public synchronized StringBuffer insert(int offset, String s)
ตัวอยางการเรียกใชงาน
StringBuffer sb = new StringBuffer("01234567");
sb.insert(4, "---");
System.out.println( sb ); // output is "0123---4567"
เมธอด reverse
เมธอดที่ทําการกลับตัวอักษร
Public synchronized StringBuffer reverse()
ตัวอยางการเรียกใชงาน
StringBuffer sb = new StringBuffer("Java is fun");
sb.reverse();
System.out.println( sb ); // output คือ nuf si avaJ
- 9. บทที่ 10 ตัวแปรสตริง หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
243
แบบฝกหัด
1. ใหสราง method ทําการรับขอความ และ ตัวอักษรโดยกําหนดให prototype ของโปรแกรมคือ
void printStr(String str,char ch)
เรียกใชงาน printStr(“Hello” , ‘*’);
ผลลัพธ
* H *
* E*
* L *
* L *
* O *
2. ใหทําการสราง method ที่ทําการกลับคาขอความที่รับเขามาแลวสงคากลับไปยังเมธอดที่เรียกใชงาน
String reverse(String str)
ตัวอยางการเรียกใชงาน String ans = reverse(“Sawusdee”);
System.out.println(ans);
ผลลัพธ
eedsuwaS