อาร์เรย์จาวา
อาร์เรย์คือชุดของข้อมูลประเภทเดียวกัน Java สนับสนุนอาร์เรย์พื้นฐานแต่ละหน่วยเป็นข้อมูลประเภทหนึ่ง อาร์เรย์หนึ่งมิติ เป็นต้น แต่ละหน่วยพื้นฐานของอาร์เรย์ n มิติคืออาร์เรย์ n-1 มิติของอาร์เรย์ n-1 ข้อมูลต่อไปนี้ใช้อาร์เรย์หนึ่งมิติเป็นตัวอย่างเพื่อแสดงการใช้งานอาร์เรย์ Java
1. การประกาศอาร์เรย์
การประกาศอาร์เรย์จะมีสองรูปแบบดังต่อไปนี้ (ตำแหน่งของวงเล็บเหลี่ยมจะแตกต่างกัน):
int arr[];int[] arr2;
2. การเริ่มต้นอาร์เรย์
นอกจากนี้ยังมีการเริ่มต้นอาร์เรย์สองรูปแบบดังนี้ (ใช้ใหม่หรือไม่ใช้ใหม่):
int arr[] = ใหม่ int[]{1, 3, 5, 7, 9};
3. สำรวจอาร์เรย์
คุณสามารถใช้ for/foreach เพื่อสำรวจอาร์เรย์ได้ดังนี้:
โมฆะสาธารณะหลัก (String [] args) { int arr [] = int ใหม่ [] {1, 3, 5, 7,9}; int [] arr2 = {2, 4, 6, 8, 10}; (int i = 0; i <arr.length; ++i) { System.out.print(arr[i] + "/t"); // 1 3 5 7 9 } สำหรับ (int x: arr2) { System.out.print(x + "/t"); // 2 4 6 8 10 } }
4. Arrays.fill() เติมอาร์เรย์
หากต้องการใช้วิธีการคงที่ของคลาส Arrays คุณต้องนำเข้าแพ็คเกจ java.util.Arrays ซึ่งกำหนดวิธีการโอเวอร์โหลดจำนวนมาก
ถือเป็นโมฆะเติม (int [] a, int val) เติมทั้งหมด
void fill(int[] a, int fromIndex, int toIndex, int val) เติมองค์ประกอบที่ดัชนีที่ระบุ
int[] arr3 = new int[5]; for (int x: arr3) { System.out.print(x + "/t"); // 0 0 0 0 0 เริ่มต้นทั้งหมดเป็น 0 } System.out.println (); Arrays.fill(arr3, 10); สำหรับ (int x: arr3) { System.out.print(x + "/t"); // 10 10 10 10 10 กรอกทั้งหมดเป็น 10 } System.out.println(); Arrays.fill(arr3, 1, 3, 8); for (int x: arr3) { System.out.print(x + "/t"); // 10 8 8 10 10 กรอกดัชนีที่ระบุ } System.out.println();
5. Arrays.sort() เรียงลำดับอาร์เรย์
ถือเป็นโมฆะ sort(int[] a) เรียงลำดับทั้งหมด
void sort(int[] a, int fromIndex, int toIndex) เรียงลำดับองค์ประกอบตามดัชนีที่ระบุ
int[] arr4 = {3, 7, 2, 1, 9}; Arrays.sort(arr4); สำหรับ (int x: arr4) { System.out.print(x + "/t"); 3 7 9 } System.out.println(); int[] arr5 = {3, 7, 2, 1, 9}; 1, 3); สำหรับ (int x: arr5) { System.out.print(x + "/t"); // 3 2 7 1 9 } System.out.println();
6. Arrays.copyOf() คัดลอกอาร์เรย์
int[] copyOf(int[] original, int newLength) คัดลอกอาร์เรย์และระบุความยาวของอาร์เรย์ใหม่
int[] copyOfRange(int[] original, int from, int to) คัดลอกอาร์เรย์ โดยระบุดัชนีของอาร์เรย์ต้นฉบับที่คัดลอก
int[] arr6 = {1, 2, 3, 4, 5}; int[] arr7 = Arrays.copyOf(arr6, 5); // 1 2 3 4 5 int[] arr8 = Arrays.copyOfRange(arr6, 1) , 3); // 2 3 สำหรับ (int x: arr7) { System.out.print(x + "/t"); } System.out.println(); สำหรับ (int x: arr8) { System.out.print(x + "/t"); } System.out.println();
สตริงจาวา
ประเภทสตริง Java คือคลาส String ต่อไปนี้จะอธิบายวิธีการใช้งานสตริง
1. การต่อสตริง
การต่อสตริงใช้สัญลักษณ์ "+" ดังตัวอย่างต่อไปนี้:
String s = new String("Hello"); String s2 = new String("World"); System.out.println(s + " " + s2); // สวัสดีชาวโลก
2. รับความยาวสตริง
หากต้องการทราบความยาวของสตริง ให้ใช้ str.length() ดังตัวอย่างต่อไปนี้:
สตริง s3 = สตริงใหม่ ("Hello Java"); System.out.println(s3.length());
3. รับดัชนีของสตริงที่ระบุ
หากต้องการรับดัชนีของสตริงที่ระบุ ให้ใช้ str.indexOf(substr), str.lastIndexOf(substr) ดังที่แสดงในตัวอย่างต่อไปนี้:
String s4 = new String("สบายดีไหม"); System.out.println(s4.indexOf("o")); // 1 ค้นหา System.out.println(s4.lastIndexOf("o")) จาก เริ่มต้น ; // 9 ค้นหาจากจุดสิ้นสุด
4. รับอักขระตามดัชนีที่ระบุ
หากต้องการรับอักขระที่ดัชนีที่ระบุ ให้ใช้ str.charAt(index) ดังตัวอย่างต่อไปนี้:
String s5 = new String("Hello Java"); System.out.println(s5.charAt(4));
5. ลบช่องว่างออกจากสตริง
มีหลายวิธีในการลบช่องว่างในสตริง ใช้ str.trim() หรือ str.replaceAll(regex, replacement) คุณยังสามารถใช้คลาส StringTokenizer เพื่อแยกสตริงด้วยช่องว่าง คุณต้องนำเข้าแพ็คเกจ java.util StringTokenizer ก่อนใช้งาน ตัวอย่างต่อไปนี้:
String s6 = new String(" Hello Java "); String s7 = s6.trim(); // ลบช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง String s8 = s6.replaceAll(" ", ""); อักขระ ช่องว่างทั้งหมดในสตริง StringTokenizer st = new StringTokenizer(s6, " "); // ใช้ช่องว่างเพื่อแยกสตริง StringBuffer sb = new StringBuffer(); (st.hasMoreTokens()) { sb.append(st.nextToken()); } System.out.println("/"" + s6 + "/"" + "length = " + s6.length()); // "สวัสดี Java "length = 14 System.out.println("/"" + s7 + "/"" + "length = " + s7.length()); // "สวัสดี Java"length = 10 System.out.println("/"" + s8 + "/"" + "length = " + s8.length()); // "HelloJava"length = 9 System.out.println(" /"" + sb.toString() + "/"" + "length = " + sb.toString().length()); // "HelloJava" ความยาว = 9
6. แทนที่สตริง
สตริงการแทนที่สามารถแทนที่สตริงย่อยทั้งหมดหรือสตริงย่อยแรก ดังที่แสดงในตัวอย่างต่อไปนี้:
String sr = new String("abc abd bcd"); String sr2 = sr.replace("ab", "xx"); // แทนที่สตริงย่อยทั้งหมด String sr3 = sr.replaceFirst("ab", "xx") ; // แทนที่สตริงแรก System.out.println(sr2); // "xxc xxd bcd" System.out.println(sr3); // "xxc adb bcd"
7. การตัดสินสตริง
มีหลายสถานการณ์สำหรับความเท่าเทียมกันของสตริง เช่น ความเท่าเทียมกันของเนื้อหาสตริง ไม่ว่าจะละเว้นตัวพิมพ์ ความเท่าเทียมกันของที่อยู่หน่วยความจำ การตัดสินการเริ่มต้นหรือสิ้นสุดสตริง ฯลฯ ดังที่แสดงด้านล่าง:
String se = new String("Summer is so Hot"); String se3 = system.out .println(se == se1); // false เปรียบเทียบหน่วยความจำแทนเนื้อหาสตริง System.out.println(se == se3); // true System.out.println(se.equals(se1)); เปรียบเทียบเนื้อหาสตริง System.out.println(se.equals(se2)); // false System.out.println(se.equalsIgnoreCase(se2)); // true ละเว้น case System.out.println(se2.startsWith (" summer"); // true เริ่มสตริง System.out.println(se2.endsWith("cold")); // false สิ้นสุดสตริง
8. การแปลงตัวพิมพ์สตริง
ตัวอย่างของการแปลงกรณีสตริงมีดังนี้:
String sc = new String("hello WORLD"); String scl = sc.toLowerCase(); // hello world ถูกแปลงเป็นตัวพิมพ์เล็ก String scu = sc.toUpperCase(); // HELLO WORLD ถูกแปลงเป็นตัวพิมพ์ใหญ่ System.out. println(scl + " " + scu);
9. การแยกสตริง
ตัวคั่นสตริงมีดังนี้:
String ss = new String("abc,def,g,h"); String[] ss2 = ss.split(","); // คั่นด้วยเครื่องหมายจุลภาคสำหรับ (String x: ss2) { System.out.print( x + "/t"); // abc def gh }
10. จัดรูปแบบสตริง
การจัดรูปแบบสตริงมีหลายรูปแบบ เช่น การจัดรูปแบบวันที่ การจัดรูปแบบเวลา การแปลงทศนิยม เป็นต้น การใช้คลาส Date จำเป็นต้องมีแพ็คเกจการนำเข้า java.util.Date ดังที่แสดงในตัวอย่างต่อไปนี้:
วันที่ d = วันที่ใหม่ (); System.out.println(d); // วันพุธที่ 22 กรกฎาคม 16:00:36 CST 2015 รูปแบบเริ่มต้น System.out.println(String.format("%tm", d)); // 07 เดือนสองหลัก System.out.println(String.format("%tH", d)); // 16 system.out.println(String.format("%x", 256)); // 100 เลขฐานสิบหก
11. การเปรียบเทียบคลาส String, StringBuffer และ StringBuilder
สตริง: ออบเจ็กต์สตริงคงที่และไม่เปลี่ยนรูป เมื่อเนื้อหาตัวแปรถูกสร้างจริง ๆ แล้ว เมื่อเนื้อหาตัวแปรถูกเปลี่ยนแปลงหลายครั้งและบ่อยครั้ง จะส่งผลกระทบต่อประสิทธิภาพของระบบ โดยเฉพาะอย่างยิ่งทำให้ GC เริ่มทำงาน . ความเร็วของโปรแกรมจะช้ามาก
StringBuffer: ตัวแปรสตริง ปลอดภัยสำหรับเธรด เมื่อมีการเปลี่ยนแปลงเนื้อหาตัวแปร วัตถุเดียวกันจะถูกดำเนินการจริง และประสิทธิภาพจะสูงกว่าชนิดสตริง
StringBuilder: ตัวแปร String เข้ากันได้กับ StringBuffer แต่ไม่ปลอดภัยสำหรับเธรด หากเป็นแบบเธรดเดียว ให้ใช้ StringBuilder ก่อน มันจะเร็วกว่า StringBuffer