JavaRush /จาวาบล็อก /Random-TH /10 คำถามที่ถูกถามบ่อยที่สุดเกี่ยวกับสตริงใน Java
ext4
ระดับ

10 คำถามที่ถูกถามบ่อยที่สุดเกี่ยวกับสตริงใน Java

เผยแพร่ในกลุ่ม

คำถามที่ถูกถามบ่อยที่สุด 10 อันดับแรกเกี่ยวกับสตริงใน Java ได้รับการกล่าวถึงที่นี่

[การแปล] 10 คำถามที่ถูกถามมากที่สุดเกี่ยวกับสตริงใน Java - 1
  1. จะเปรียบเทียบสตริงได้อย่างไร? จะใช้อะไร: " ==" หรือequals()?

    กล่าวโดยย่อ " ==" เปรียบเทียบการอ้างอิงถึงสตริง แต่equals()เปรียบเทียบค่าที่มีอยู่ในสตริงเหล่านั้น หากคุณไม่ต้องการตรวจสอบว่าสองสตริงเป็นวัตถุเดียวกัน คุณควรใช้equals().

    นอกจากนี้ยังเป็นการดีที่จะทราบแนวคิดของstring pool

  2. เหตุใดchar[]จึงควรใช้สตริง ( String) เพื่อปกป้องข้อมูลที่ละเอียดอ่อน

    สตริงไม่เปลี่ยนรูป ซึ่งหมายความว่าเมื่อสร้างสตริงแล้ว จะไม่ได้รับการแก้ไขจนกว่าจะรันตัวรวบรวมขยะ ในกรณีของอาร์เรย์ เห็นได้ชัดว่าเราสามารถเปลี่ยนองค์ประกอบของอาร์เรย์ได้ ด้วยวิธีนี้ ข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่าน) จะไม่ถูกจัดเก็บไว้ในข้อความที่ชัดเจนทุกที่ในโปรแกรม

  3. เราสามารถส่งสตริงเป็นพารามิเตอร์เมื่อใช้คำสั่ง switch ได้หรือไม่?

    ใช่ เริ่มตั้งแต่เวอร์ชัน 7 ของ JDK ก่อนหน้านี้ในเวอร์ชัน 6 สิ่งนี้ไม่สามารถทำได้

    // java 7 only!
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
  4. จะแปลงสตริงให้เป็นค่าจำนวนเต็มได้อย่างไร?

    int n = Integer.parseInt("10");

    เช่นเดียวกับประเภทดั้งเดิมอื่น ๆ ใน Java

  5. จะแยกสตริงออกเป็นบรรทัดที่คั่นด้วยช่องว่างได้อย่างไร?

    วิธีที่ง่ายที่สุดคือการใช้นิพจน์ทั่วไป " \s" ทำหน้าที่แทนอักขระช่องว่าง เช่น " ", " \t", " \r", " \n"

    String[] strArray = aString.split("\\s+");
  6. < จริงๆ แล้ววิธีนี้ใช้ทำอะไรsubstring()?

    ใน JDK 6 วิธีsubstring()การแสดงส่วนหนึ่งของอักขระจากสตริงที่มีอยู่ แต่ไม่ได้สร้างอินสแตนซ์แยกต่างหากของสตริง หากต้องการสร้างสตริงใหม่ซึ่งแสดงเป็นอาร์เรย์ของอักขระ คุณสามารถเพิ่มสตริงว่างได้ เช่น:

    str.substring(m, n) + ""

    ผลลัพธ์ที่ได้คืออาร์เรย์ของอักขระ ซึ่งเป็นสตริงใหม่ของเรา วิธีการนี้สามารถลดเวลาในการดำเนินการโค้ดได้เนื่องจากตัวรวบรวมขยะสามารถทำลายสตริงขนาดใหญ่ที่ไม่ได้ใช้ และจัดเก็บเฉพาะสตริงย่อยเท่านั้น

    ใน Oracle JDK 7 วิธีการนี้substring()จะสร้างอาร์เรย์อักขระใหม่โดยไม่ต้องใช้อาร์เรย์ที่มีอยู่ คุณสามารถดูแผนภาพที่แสดงความแตกต่างระหว่างเมธอด substring() ใน JDK 6 และ JDK 7ได้

  7. String กับ StringBuilder กับ StringBuffer

    Stringvs StringBuilder: StringBuilderไม่แน่นอน ซึ่งหมายความว่าเราสามารถเปลี่ยนแปลงเนื้อหาได้หลังจากสร้างอ็อบเจ็กต์แล้ว

    StringBuildervs StringBuffer: StringBufferซิงโครไนซ์ หมายความว่าทำงานได้อย่างถูกต้องเมื่อใช้จากหลายเธรดในเวลาเดียวกัน แต่ช้ากว่าStringBuilder.

  8. จะทำซ้ำบรรทัดหลาย ๆ ครั้งได้อย่างไร?

    ใน Python เราสามารถคูณสตริงด้วยตัวเลขnจากนั้นสตริงจะทำซ้ำ n ครั้ง ใน Java เราสามารถใช้เมธอดrepeat()จากStringUtilsคลาสไลบรารี Apache Commons Lang

    String str = "abcd";
    String repeated = StringUtils.repeat(str,3);
    //abcdabcdabcd
  9. วิธีแปลงสตริงเป็นวันที่?

    String str = "Sep 17, 2013";
    Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
    System.out.println(date);
    //Tue Sep 17 00:00:00 EDT 2013
  10. จะนับจำนวนครั้งของอักขระบางตัวในสตริงได้อย่างไร?

    ใช้คลาสStringUtilsจากไลบรารี Apache Commons Lang

    int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n);
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION