Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีนำ String ไปใช้ใน JShell ของ Java 9

JShell เป็นแอปพลิเคชัน REPL רשמיแรกของ Java นำมารวมใน Java 9 เป็นเครื่องมือช่วยรันและประเมินโปรแกรม Java เรียบง่าย และลอจิกเล็กๆ เช่น statements simple programs loops expressions เป็นต้น Java REPL ให้สภาพแวดล้อมโปรแกรมมิ่งง่ายๆ ใน command prompt อ่าน input ประเมินค่า และพิมพ์ output

ตัวอย่าง: ใช้ String กับเมธอดต่างๆ

jshell> String str = "{abcd}";
str ==> "{abcd}"

jshell> str.substring(2, str.length() - 1)
$7 ==> "bcd"

jshell> String s1 = new String("abcd");
s1 ==> "abcd"

jshell> String s2 = new String("abcd");
s2 ==> "abcd"

jshell> s1 == s2
$10 ==> false

jshell> s1.equals(s2)
$11 ==> true

jshell> String s3 = "abcd";
s3 ==> "abcd"

jshell> String s4 = "abcd";
s4 ==> "abcd"

jshell> s3 == s4
$14 ==> true

jshell> s3.equals(s4)
$15 ==> true

jshell> s1 == s3
$16 ==> false

jshell> s1.equals(s3)
$17 ==> true

jshell> String s5 = "a" + "bcd";
s5 ==> "abcd"

jshell> s3 == s5
$19 ==> true

jshell> "abcd".getBytes()
$20 ==> byte[4] { 97, 98, 99, 100 }

jshell> "abcd".getBytes("UTF-16")
$22 ==> byte[10] { -2, -1, 0, 97, 0, 98, 0, 99, 0, 100 }

jshell> String raw = "1|2|3|4";
raw ==> "1|2|3|4"

jshell> raw.split("\\|")
$24 ==> String[4] { "1", "2", "3", "4" }

สรุปพฤติกรรม String ใน JShell

  • String literal ("abcd") ใช้ string pool → == คืน true
  • new String() สร้าง object ใหม่ทุกครั้ง → == คืน false
  • .equals() เปรียบเทียบค่า → true ถ้าตัวอักษรเหมือนกัน
  • concat ด้วย + คอมไพเลอร์ optimize ให้อยู่ใน pool
  • getBytes() คืน byte array encoding ต่างๆ ได้
  • split() แยกสตริงด้วย regex

JShell ช่วยทดสอบ String behavior ได้เร็วมาก ไม่ต้องเขียนคลาสเต็มรูปแบบ