สตริง (String)56-pptx

Download Report

Transcript สตริง (String)56-pptx

1


สตริง (string) หรื อ ข้ อความ หมายถึง ชุด(array)ของตัวอักขระ(character) ที่เรี ยงต่อ
กัน
การกาหนด string คือ การกาหนดอาร์ เรย์ของข้ อมูลชนิด char หลาย ๆ ตัวนามา
เชื่อมต่อกัน
[0]
C

[1]
O
[2]
M
[3]
P
[4]
U
[5]
T
[6]
E
[7]
R
'C','o','m','p','u','t','e','r' เก็บไว้ ในอาร์ เรย์รวมเป็ นข้ อมูล string ซึง่ จะได้ สตริงคือ
"Computer"
2
ข้ อมูลประเภทสตริ ง หรื อ ข้ อความนัน้ ในภาษาจาวาจะต้ องสร้ างออบเจ็กต์ของคลาส
สตริ ง โดยใช้ keyword คาว่า new ในการสร้ าง



String name1 = new String(“coffee”);
String name2;
name2 = new String (“Espresso”);
มีข้อยกเว้ นในคลาสนี ้ ยกเว้ นการใช้ new ได้



String name1 = “coffee”;
String name2;
name2 = “Espresso”;
3
char c = ‘a’;
 String s;
 int x =3;
 s = c + “ ”;
 System.out.print(s);
 s = ‘s’+ “pin”
 System.out.print(s);

4


การประกาศและให้ คา่ ตัวแปรแบบทัว่ ไป จะเป็ นการจองพื ้นที่ในหน่วยความจาแล้ ว
นาค่าไปเก็บใส่พื ้นที่บริ เวณนันที
้ ่จองไว้
แต่การประกาศและให้ คา่ object จะเป็ นการจองพื ้นที่หน่วยความจาไว้ สาหรับอ้ างอิง
ไปยังพื ้นที่หน่วยความจาอีกส่วนหนึง่ ที่เก็บ object นันไว้
้
5

หาจานวนอักขระในสตริ ง return เป็ น int
String s1 = “Hello";
int len = s1.length();
System.out.println(len);
6

หาตัวอักขระในตาแหน่ง index ที่ระบุในสตริ ง return เป็ นตัวอักขระที่พบ (char)
String s1 = "Hello";
System.out.println(s1.charAt(0));
System.out.println(s1.charAt(3));
System.out.println(s1.charAt(5));
7


toUpperCase() เปลี่ยนข้ อความสตริ งให้ เป็ นตัวใหญ่ทงหมด
ั้
return เป็ น String
toLowerCase() เปลี่ยนข้ อความสตริ งให้ เป็ นตัวเล็กทังหมด
้
return เป็ น String
String s1 = “Hello";
String s2 = "WorlD";
s1 = s1.toUpperCase();
System.out.println(s1);
System.out.println(s2.toLowerCase());
8

นาข้ อความสตริ ง str ไปต่อท้ ายสตริ งที่กาหนด return เป็ นสตริงที่ตอ่ กันแล้ ว
String fullname;
String first = "John";
String last = "Terry";
fullname = first.concat(last);
System.out.println(fullname);
System.out.println("Hello ".concat("Mr. ").concat(fullname));
9


replace : แทนค่าตัวอักขระ oldchar ด้ วยอักขระ newchar ในสตริงที่กาหนด
replaceAll : แทนค่าสตริ ง oldstr ด้ วยสตริ ง newstr ในสตริ งที่กาหนด
String str1 = "Tom tried to get in the train";
String str2,str3;
str2 = str1.replace('t','D');
str3 = str1.replaceAll("tr","aaa");
System.out.println(str2);
System.out.println(str3);
10





จะตัดเว้ นวรรค หรื อ space ของสตริ งออกไป return เป็ นสตริ งที่ไม่มีชอ่ งว่างในข้ อความ
String g1 = "
Hello ";
String g2 = g1.trim();
System.out.println("*" + g1 + "*");
System.out.println('*' + g2 + '*');
11


startsWith(String str) คืนค่าเป็ นจริ ง หากสตริ งที่กาหนดเริ่ มต้ นด้ วยสตริง str
endsWith(String str) คืนค่าเป็ นจริ ง หากสตริ งที่กาหนดลงท้ ายด้ วยสตริง str
String a = "I met you seven years ago.";
if (a.startsWith("Im"))
System.out.println("begin with I");
else
System.out.println("does not begin with I");
12

ใช้ ค้นหาตัวอักขระหรื อสตริ ง ในข้ อความที่ต้องการ return ค่าเป็ นตาแหน่ง index ที่พบ
String target = "banana mango";
System.out.println(target.indexOf('n'));
System.out.println(target.indexOf("an"));
System.out.println(target.indexOf(‘n’,6));
System.out.println(target.indexOf("an",5));
System.out.println(target.indexOf('e'));
System.out.println(target.indexOf("x"));
System.out.println(target.lastIndexOf('n'));
System.out.println(target.lastIndexOf("an"));
System.out.println(target.lastIndexOf(‘n’,6));
System.out.println(target.lastIndexOf("an",5));
13
String sentence= "I like computer programming";
int position;
System.out.println("letter r appears at ");
position = sentence.indexOf('r',0); //หา r ตั ้งแต่ index ที่ 0
while (position != -1) {
System.out.println(position);
position = sentence.indexOf('r',++position); //หา r ต่อโดยขยับ index
}
14


substring(int start) คืนค่าข้ อความในสตริ งตังแต่
้ ตาแหน่ง start ในสตริง
substring(int start, int end) คืนค่าข้ อความในสตริงตังแต่
้ ตาแหน่ง start ถึง end ใน
สตริ ง
String name = "Rajamangala University of Technology Tawan-ok";
System.out.println(name.substring(14));
System.out.println(name.substring(4,10));
15





เปลี่ยนข้ อมูลแบบต่างๆ ให้ กลายเป็ นสตริง
valueOf(boolean b): Returns the string representation of the boolean
argument.
valueOf(char c) : Returns the string representation of the char argument.
valueOf(char[] data) : Returns the string representation of the char array
argument.
valueOf(double d) : Returns the string representation of the double
argument.

valueOf(float f) : Returns the string representation of the float argument.

valueOf(int i) : Returns the string representation of the int argument.

valueOf(long l) : Returns the string representation of the long argument.

valueOf(Object obj) : Returns the string representation of the Object
argument.
16





double d = 102939939.939;
boolean b = true;
long l = 1232874;
char[] arr = {'a', 'b', 'c', 'd', 'e', 'f','g' };
System.out.println("Return
System.out.println("Return
System.out.println("Return
System.out.println("Return
Value :
Value :
Value :
Value :
"
"
"
"
+
+
+
+
String.valueOf(d) );
String.valueOf(b) );
String.valueOf(l) );
String.valueOf(arr) );
17


ใช้ เครื่ องหมาย == ตรวจสอบว่าสตริ งสองตัวมีออบเจ็กต์ตวั เดียวกันหรื อไม่ (เช็คจาก addr ของสตริ ง)
ใช้ คาสัง่ equals() และ compareTo() ตรวจสอบสตริ งจากค่าของข้ อมูล (ไม่เช็คจาก address)
String word1, word2;
word1 = "Java";
word2 = "Java";
System.out.println(word1==word2);
System.out.println(word1.equals(word2));
System.out.println(word1.compareTo(word2));
String word3, word4;
word3 = new String("Java");
word4 = new String("Java");
System.out.println(word3==word4);
System.out.println(word3.equals(word4));
System.out.println(word3.compareTo(word4));
18

จงเขียนโปรแกรมตรวจสอบว่าสตริ งสองค่าที่ผ้ ใู ช้ กรอกเข้ ามานันเหมื
้ อนกันหรื อไม่
โดยตัวอักษรพิมพ์เล็กหรื อพิมพ์ใหญ่ตวั เดียวกัน ให้ มองว่าเหมือนกัน
19

เขียนโปรแกรมรับ sentence จากผู้ใช้ และ keyword ที่ผ้ ใู ช้ ต้องการค้ นหา โดย
ตรวจสอบว่า sentence จากผู้ใช้ นนั ้ พบ keyword ที่ต้องการค้ นหากี่ครัง้

Challenge! ลองเขียนโปรแกรมเพิ่มเติมว่าพบในตาแหน่งใดบ้ าง
20