1. วิธีการในการพิจารณาว่าสตริง str ไม่ว่างเปล่าคือ:
1. str == null;
2. "" .Equals (Str);
3. str.length <= 0;
4. str.isempty ();
หมายเหตุ: ความยาวเป็นแอตทริบิวต์ซึ่งเป็นคุณสมบัติที่เป็นเจ้าของโดยวัตถุคลาสคอลเลกชันและได้รับขนาดของคอลเลกชัน
ตัวอย่างเช่น: array.length คือการได้รับความยาวของอาร์เรย์
ความยาว () เป็นวิธีการโดยทั่วไป
ตัวอย่างเช่น: string.length ();
ภาพประกอบ:
1. NULL หมายความว่าสตริงนี้ไม่ได้ชี้ไปที่สิ่งใด
2. "" หมายความว่ามันชี้ไปที่สตริงที่มีความยาว 0 และปลอดภัยที่จะเรียกวิธีการในเวลานี้
3. NULL ไม่ใช่วัตถุ "" เป็นวัตถุดังนั้น NULL จึงไม่มีการจัดสรรพื้นที่ "" จัดสรรพื้นที่ตัวอย่างเช่น:
String str1 = null;
String str2 = "";
STR1 ยังไม่ได้เป็นวัตถุอินสแตนซ์ในขณะที่ STR2 ได้รับการสร้างอินสแตนซ์
วัตถุถูกเปรียบเทียบกับค่าเท่ากับค่า null จะถูกเปรียบเทียบกับเครื่องหมายที่เท่ากัน
ถ้า str1 = null;
if (str1.equals ("") || str1 == null) {}
วิธีที่ถูกต้องในการเขียนคือถ้า (str1 == null || str1.equals ("")) {// ดังนั้นเมื่อตัดสินว่าสตริงว่างเปล่าก่อนกำหนดว่าเป็นวัตถุหรือไม่ เป็นสตริงที่ว่างเปล่า}
4. ดังนั้นเพื่อตรวจสอบว่าสตริงว่างเปล่าคุณต้องตรวจสอบให้แน่ใจก่อนว่ามันไม่ใช่โมฆะแล้วตัดสินความยาวของมัน
string str = xxx;
if (str! = null && str.length ()! = 0) {}
2. ต่อไปนี้เป็นสี่วิธีสำหรับ Java เพื่อตรวจสอบว่าสตริงว่างเปล่า:
ประสิทธิภาพของสี่วิธีมีดังนี้:
judgestring1 เวลาที่ใช้: 625ms
Judgestring2 ใช้เวลา: 125ms
judgestring3 เวลาที่ใช้: 234ms
judgestring4 ใช้เวลา: 109ms
การคัดลอกรหัสมีดังนี้:
-
* สร้างขึ้นด้วยแนวคิด Intellij
* ผู้ใช้: ผู้ดูแลระบบ
* วันที่: 14-1-16
* เวลา: 10:43 น.
* ประสิทธิภาพของการพิจารณาว่าสตริงว่างเปล่า
-
ชั้นเรียนสาธารณะ Judgthingringisemptyornot {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
Judgestring1 ("w_basketboy", 10,000);
Judgestring2 ("w_basketboy", 10,000);
Judgestring3 ("w_basketboy", 10,000);
Judgestring4 ("w_basketboy", 10,000);
-
-
* วิธีที่ 1: วิธีการที่คนส่วนใหญ่ใช้นั้นใช้งานง่ายสะดวก แต่ไม่มีประสิทธิภาพมาก
* วิธีที่ 2: การเปรียบเทียบความยาวของสตริงเป็นวิธีที่ดีที่สุด
* วิธีการที่ 3: วิธีการที่จัดทำโดย Java SE 6.0 ได้เริ่มต้นเท่านั้นประสิทธิภาพและวิธีการที่ 2 เกือบเท่ากัน แต่ด้วยเหตุผลที่เข้ากันได้ขอแนะนำให้ใช้วิธีการที่ 2;
* วิธีที่ 4: นี่เป็นวิธีที่ค่อนข้างใช้งานง่ายและง่ายและประสิทธิภาพก็สูงมากซึ่งคล้ายกับประสิทธิภาพของวิธีการ 2 และ 3;
-
โมฆะคงที่สาธารณะ Judgestring1 (String Str, Long Num) {
Long StartTieM = System.currentTimeMillis ();
สำหรับ (int i = 0; i <num; i ++) {
สำหรับ (int j = 0; j <num; j ++) {
if (str == null || "" .equals (str)) {
-
-
-
endtime long = system.currentTimeMillis ();
System.out.println ("function1 ใช้เวลานาน:" + (endtime - starttiem) + "MS");
-
โมฆะคงที่สาธารณะ Judgestring2 (String Str, Long Num) {
Long StartTieM = System.currentTimeMillis ();
สำหรับ (int i = 0; i <num; i ++) {
สำหรับ (int j = 0; j <num; j ++) {
if (str == null || str.length () <= 0) {
-
-
-
endtime long = system.currentTimeMillis ();
System.out.println ("Function4 ใช้เวลานาน:" + (endtime - starttiem) + "MS");
-
โมฆะคงที่สาธารณะ Judgestring3 (String Str, Long Num) {
Long StartTieM = System.currentTimeMillis ();
สำหรับ (int i = 0; i <num; i ++) {
สำหรับ (int j = 0; j <num; j ++) {
if (str == null || str.isempty ()) {
-
-
-
endtime long = system.currentTimeMillis ();
System.out.println ("Function3 ใช้เวลานาน:" + (endtime - starttiem) + "MS");
-
โมฆะคงที่สาธารณะ Judgestring4 (String Str, Long Num) {
Long StartTieM = System.currentTimeMillis ();
สำหรับ (int i = 0; i <num; i ++) {
สำหรับ (int j = 0; j <num; j ++) {
if (str == null || str == "") {
-
-
-
endtime long = system.currentTimeMillis ();
System.out.println ("Function4 ใช้เวลานาน:" + (endtime - starttiem) + "MS");
-
-