💡 มารู้จัก Class สำหรับจัดการ String เจ๋ง ๆ ในภาษา Java กันเถอะ !! นั่นคือเจ้า StringBuilder นั่นเองจ้าาา !!
.
มีรายละเอียดยังไงบ้างงง ไปดูกันนนน !!~~
.
✨ StringBuilder เป็น Class สำหรับจัดการ String เพื่อให้เราสามารถแก้ไข แทรก หรือต่อ String ได้อย่างมีประสิทธิภาพนั่นเอง
.
🔸 Syntax
public final class StringBuilder
extends Object
implements Serializable, CharSequence
.
🖥️ ตัวอย่างฟังก์ชัน
StringBuilder () - สร้าง StringBuilder มีความจุเริ่มต้นคือ 16 อักขระ
StringBuilder(int capacity) - สร้าง StringBuilder ตามความยาวที่ระบุ
StringBuilder(CharSequence seq) - สร้าง Object StringBuilder ด้วยลำดับอักขระที่ระบุ
StringBuilder(String str) - สร้าง Object StringBuilder เริ่มต้นด้วย String
.
📑 ตัวอย่างการใช้งาน
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
//StringBuilder()
StringBuilder str
= new StringBuilder();
str.append("BorntoDev");
System.out.println("String = "
+ str.toString());
//StringBuilder(CharSequence)
StringBuilder str1
= new StringBuilder("BorntoDevBorntoDevBorntoDev");
System.out.println("String1 = "
+ str1.toString());
//StringBuilder(capacity)
StringBuilder str2
= new StringBuilder(10);
System.out.println("String2 capacity = "
+ str2.capacity());
//StringBuilder(String)
StringBuilder str3
= new StringBuilder(str1.toString());
System.out.println("String3 = "
+ str3.toString());
}
}
.
🔹 Output
String = BorntoDev
String1 = BorntoDevBorntoDevBorntoDev
String2 capacity = 10
String3 = BorntoDevBorntoDevBorntoDev
.
หวังว่าจะเป็นประโยชน์กับเพื่อน ๆ นะคร้าบบบบบ 🥰
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
system.out.println java 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
System.out.println() ในภาษา Java ถือว่าออกแบบผิดหลักการข้อใด?
.
อันนี้อ้างอิงตามตำรา
Head First Design Patterns (2008) หน้า 268 📗 📗
(ใครมีตำราก็ไปกางเปิดดูได้)
.
👧 คำตอบ การออกแบบคำสั่งชุดนี้ในภาษา Java
จะถือว่าผิดหลักการออกแบบโปรแกรมเรื่อง
"Principle of Least Knowledge"
แปลเป็นไทย "หลักการของความรู้น้อยที่สุด"
.
Principle of Least Knowledge
เป็นหลักการออกแบบ Object ให้รู้จักเพื่อนๆ ที่ใกล้ชิดไม่กี่คน 👩❤️💋👨
.
.
จากประโยคคำสั่ง System.out.println()
System กว่าจะรู้จัก println() ก็ต้องผ่าน out มันไกลเกินไปลูกพี่
ซึ่งข้อเสียมันทำให้โค้ดมีลักษณะยึดติดกันเกินไป
.
ศัพท์ทาง Object Oriented Programming โค้ดจะมีอาการเรียกว่า "coupling" โค้ดเป็นคู่สามีภรรยา เกี่ยวดองกันแนบแน่น
เช่น ถ้าเกิด out มีการแก้ไขก็จะกระเทือนต่อ println() และ System ไปด้วย (อันนี้แค่ยกตัวอย่างนะ ของจริงอาจไม่กระทบเลยก็ได้)
.
ในขณะที่ภาษาสมัยใหม่พวก Swift, Kotlin
จะเขียนสั้นๆ print(), println() ตามลำดับ
ไม่ต้องมาทำพิธีกรรมเรียกหลายชั้น หลายซ้อนแบบนี้
ก็เราแค่แสดงผลออกทางหน้าคอนโซลนี้น่า
มันจะทำอะไรให้มันวุ่นวายไปใย
.
จะขอยกตัวอย่างโค้ดในหนังสือเช่น
station.getThermometer().getTemperature();
เขียนแบบนี้ จะเห็นว่ามันยาวเหยียด
ถ้าเขียนครั้งเดียวพอทนได้
แต่ถ้าให้เขียนซ้ำๆ มันขี้เกียจเหมือนกันเนอะ
.
สำหรับวิธีแก้ไขปัญหาโค้ดที่ละเมิดหลัก
"Principle of Least Knowledge"
ไม่ยากเลย เราสามารถใช้หลักของดีไซน์แพทเทิร์นตัวหนึ่ง
นั้นก็คือ "เดอะเฟสไทยแลนด์"
...เฮยไม่ใช่แหละ 😜 😜
.
ใช้แพทเทิร์นที่เรียกว่า "The Facade"
เพื่อแก้ไขโค้ดลักษณะนี้
สนใจก็อย่าลืมไปทบทวน
ดีไซน์แพทร์นของ GOF นะ (ขอไม่ลงรายละเอียด)
.
แต่จะว่าไปมันก็เป็นแค่แนวคิดและหลักการเฉยๆ
แล้วแต่เราแหละ เขียนผิดหลักการยังไง
โค้ดก็รันได้ ปกติอยู่แล้ว
มันเป็นแนวคิด ไม่ใช้กฏหมายบังคับซะเมื่อไร
.
เพราะถ้าคนออกแบบเขาจะเอาแบบนี้
ชอบแบบนี้ ชอบที่เป็นแบบนี้ ชอบแววตาแบบนี้
ชอบรอยยิ้มแบบนี้ ก็ชอบคนนี้ ...โฮ้ว~~~
.
ถ้าทำแล้วโค้ดไร้บั๊ก ลูกค้าแฮปปี้พอใจ จ่ายเงินให้เรา ก็คือโอเคสองฝ่าย
ส่วนโปรแกรมเมอร์ที่มารับไม้ต่อ ไม่ชอบดีไซน์โค้ดแบบนี้
ก็จับ refactoring เอาเองแล้วกันเด้อ
.
อีกอย่างที่ยกตัวอย่างมาเป็นภาษา Java
ซึ่ง System.out.println() ใช้กันเป็นเรื่องปกติ
บิดา Java เขาจัดวาง println() ให้อยู่เป็นสัดเป็นส่วนอย่างนี้เอง
.
แต่เราต้องยอมรับว่า IDE ปัจจุบันมันฉลาดมาก
บางตัวแค่พิมพ์ S ก็แสนรู้
เดาใจเราออกว่าเราจะพิมพ์ System.out.println();
IDE สมัยนี้มันช่วยเราได้เยอะเลยทีเดียว
ไม่ต้องเสียเวลาพิมพ์ยาวเมื่อยมือ เสียเวลา
แต่ถ้ายังใช้ notepad อยู่ ก็ต้องทนเหนื่อยเอา
.
.
.
.
.
.
.
.
.
.
.
.
ทิ้งท้ายก่อนจากกันไป
<ประชาสัมพันธ์ขายของ>
หนังสือ "โปรแกรมเมอร์ก็รวยได้ ด้วยเส้นทางเอาท์ซอร์สสายดำ"
หนังสือที่จะเล่าเส้นทางสายเอาท์ซอร์สเงินดีรายได้งาม
✔ สำหรับตัวอย่างหนังสือ 👇
PDF: https://drive.google.com/file/d/1tAnMozeYd63dcbBGTQmT_ZrpSaamZS3e/edit
หรือดูจาก youtube: https://youtu.be/Ljf9iJhLcIs
.
รายละเอียดอ่านเพิ่มเติมได้ที่่ 👇
https://www.patanasongsivilai.com/blog/sale_book_rich_with_outsource/
.
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
เราจะผ่านโควิด-19 ไปกันนะทุกคคนนน
system.out.println java 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
ใน Java เวลาทำ casting
👉 เมื่อนำ สตริง + ตัวเลข
ตัวเลขฝั่งขวามือจะแปลงเป็นสตริง แล้วนำมาต่อสตริงกัน
.
👉 เมื่อนำ char + ตัวเลข
ฝั่ง char ซ้ายมือจะแปลงเป็นตัวเลข (ASCII) แล้วนำมาบวกกัน เช่น '4' มี
ค่า ASCII คือ 52
.
👉 แต่ถ้ามีวงเล็บ เช่น ( ตัวเลข + ตัวเลข) ก็จะบวกตัวเลขในวงเล็บก่อน
จะเหมือนเขียนประมาณนี้แหละใน Java
1.1) System.out.println( "4" + 4 ); // 44
System.out.println( "4" + String.valueOf(4) ); // 44
1.2) System.out.println( '4' + 4 ); // 56
System.out.println( (int)'4' + 4 ); // 56
1.3) System.out.println( "4" + 4 + 4 ); // 444
System.out.println( "4" + String.valueOf(4) + String.valueOf(4) ); // 444
1.4) System.out.println( "4" + (4 + 4) ); // 48
System.out.println( "4" + String.valueOf(4 + 4) ); // 48
1.5) System.out.println( '4' + 4 + 4 ); // 60
System.out.println( (int)'4' + 4 + 4 ); // 60
หมายเหตุ สำหรับภาษา Java กับ JavaScript
ชื่อคนละตัวกัน และเป็นคนละภาษา
บางคนอาจเข้าใจผิดได้
ทั้ง Java และ JavaScript เอาไว้พัฒนาทั้ง Font-end และ Back-end
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
++++ขอประชาสัมพันธ์++++++
ใครสนใจศึกษาจาวาสคริปต์ (JavaScript)
ก็อุดหนุนหนังสือเล่มนี้ได้ ที่ซีเอ็ด
https://www.se-ed.com/product…/จตุรพัชร์-พัฒนทรงศิวิไล.aspx…