CodeGym /จาวาบล็อก /สุ่ม /11 วิธีการแยกวิเคราะห์ () ใน Java พร้อมตัวอย่าง
John Squirrels
ระดับ
San Francisco

11 วิธีการแยกวิเคราะห์ () ใน Java พร้อมตัวอย่าง

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

0. แยกวิเคราะห์()

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

static int parseInt(String s)
static int parseInt(String s, int radix)
โดยที่sคือสตริงที่แสดงค่าทศนิยมที่มีเครื่องหมายและฐานของระบบตัวเลข โปรดทราบว่าไม่มีค่าเริ่มต้นพื้นฐาน คุณต้องป้อนค่าใดค่าหนึ่งในช่วง 2 และ 36 นี่คือตัวอย่าง วิธีแยกวิเคราะห์ด้วย ParseInt():

public class ParseInt0 {

       public static void main(String args[]){
           int x = Integer.parseInt("12");
           double c = Double.parseDouble("12");
           int b = Integer.parseInt("100",2);

           System.out.println(Integer.parseInt("12"));
           System.out.println(Double.parseDouble("12"));
           System.out.println(Integer.parseInt("100",2));
           System.out.println(Integer.parseInt("101", 8));
         
       }
   }
ผลลัพธ์คือ:
12 12.0 4 65

1. วิธีการแยกวิเคราะห์ระยะเวลา ()

Periodเป็นคลาส Java ที่ใช้สร้างแบบจำลองจำนวนเวลาในรูปของปี เดือน และวัน เช่น “3 ปี 5 เดือน และ 2 วัน” มี วิธีการ แยกวิเคราะห์ ()เพื่อรับจุดจากข้อความ นี่คือไวยากรณ์ของการแยกวิเคราะห์ระยะเวลา ()

public static Period parse(CharSequence text)
CharSequence เป็นส่วนต่อประสานที่ดำเนินการโดย Strings ดังนั้นคุณสามารถใช้ Strings เป็นองค์ประกอบข้อความในวิธีการparse() ตรวจสอบให้แน่ใจว่าสตริงควรอยู่ในรูปแบบที่เหมาะสมเพื่อส่งคืนออบเจกต์ของคลาส Period รูปแบบนี้คือPnYnMnD โดยที่ Y หมายถึง “ปี” M หมายถึง “เดือน” D หมายถึง “วัน” N คือตัวเลขที่สอดคล้องกับค่าแต่ละช่วงเวลา
  • เมธอดมีพารามิเตอร์เดียว — ค่าข้อความ
  • Parse()ส่งคืนค่าระยะเวลาโดยที่ค่าของสตริงกลายเป็นพารามิเตอร์
  • ข้อยกเว้นคือperiod parse()สามารถส่งคืน DateTimeParseException หากค่าสตริงไม่ตรงตามโครงสร้างของรอบระยะเวลา
ต่อไปนี้คือตัวอย่างการใช้Period parse()ในบริบทของโลกแห่งความจริง:

import java.time.Period;
public class ParseDemo1 {

   public static void main(String[] args)
   {
       //Here is the age String in format to  parse
       String age = "P17Y9M5D";

       // Converting strings into period value
       // using parse() method
       Period p = Period.parse(age);
       System.out.println("the age is: ");
       System.out.println(p.getYears() + " Years\n"
                          + p.getMonths() + " Months\n"
                          + p.getDays() + " Days\n");
   }
}
	} 
} 
ผลลัพธ์คือ:
อายุ : 17 ปี 9 เดือน 5 วัน

2.SimpleDateFormat Parse() วิธีการ

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

public Date parse(String the_text, ParsePosition position)
วิธีการมีสองพารามิเตอร์:
  • ตำแหน่ง: ข้อมูลที่ดัชนีเริ่มต้นซึ่งเป็นประเภทวัตถุ ParsePosition เสมอ
  • the_text: กำหนดสตริงที่เมธอดจะแยกวิเคราะห์และเป็นค่าประเภทสตริง
คุณสามารถใช้วิธีนี้โดยไม่ต้องประกาศตำแหน่ง ในกรณีนี้ ข้อมูลเริ่มต้นจากดัชนีศูนย์ SimpleDateFormat parse()ส่งคืนวันที่หรือค่า Null (ในกรณีที่สตริงไม่ได้รับการประมวลผลเนื่องจากข้อผิดพลาด) นี่คือตัวอย่าง การใช้งาน SimpleDateFormat parse() :

// Parsing strings into the Date format with two different patterns import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ParseDemo2 {
   public static void main(String[] args) throws ParseException {
       SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("MM/dd/yyyy");
       SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("dd/MM/yyyy");
       //simpleDateFormat1.setLenient(false);
       Date date1 = simpleDateFormat1.parse("010/14/2020");
       System.out.println(date1);
       Date date2 = simpleDateFormat2.parse("14/10/2020");
       System.out.println(date2);
       ParsePosition p1 = new ParsePosition(18);
       ParsePosition p2 = new ParsePosition(19);
       ParsePosition p3 = new ParsePosition(5);

       String myString = "here is the date: 14/010/2020";
       Date date3 = simpleDateFormat2.parse(myString,p1);
       Date date4 = simpleDateFormat2.parse(myString,p2);
       Date date5 = simpleDateFormat2.parse(myString,p3);

       System.out.println(date3);
       System.out.println(date4);
       System.out.println(date5);
   }
}
ผลลัพธ์คือ:
พุธ 14 ต.ค. 00:00:00 EEST 2020 พุธ 14 ต.ค. 00:00:00 EEST 2020 พุธ 14 ต.ค. 00:00:00 EEST 2020 อา. 04 ต.ค. 00:00:00 EEST 2020 null
อันสุดท้ายเป็น null เนื่องจากไม่มีรูปแบบวันที่เริ่มต้นจากตำแหน่งที่ 5 อย่างไรก็ตาม หากคุณพยายามแยกวิเคราะห์ date5 โดยไม่มีตำแหน่ง เช่นDate date5 = simpleDateFormat2.parse(myString)คุณจะได้รับข้อยกเว้น:
ข้อยกเว้นในเธรด "หลัก" java.text.ParseException: วันที่แยกวิเคราะห์ไม่ได้: "นี่คือวันที่: 14/010/2020" ที่ java.base/java.text.DateFormat.parse(DateFormat.java:396) ที่ ParseDemo2.main (ParseDemo2.java:22)

3. วิธีการแยกวิเคราะห์ LocalDate ()

LocalDateเป็นคลาสที่ปรากฏใน Java 8 เพื่อแสดงวันที่ เช่น วันเดือนปี (วันของปี วันในสัปดาห์ และสัปดาห์ของปี สามารถเข้าถึงได้เช่นกัน) LocalDate ไม่ได้แสดงเวลาหรือเขตเวลา วิธีการ แยกวิเคราะห์ LocalDate ()มีสองรูปแบบ ทั้งคู่ช่วยในการแปลงสตริงเป็น Java 8 date API ใหม่ — java.time.LocalDate

แยกวิเคราะห์ (ข้อความ CharSequence, DateTimeFormatter, ฟอร์แมตเตอร์)

วิธีการนี้แยกวิเคราะห์สตริงโดยใช้ตัวจัดรูปแบบเฉพาะเพื่อรับอินสแตนซ์ของ LocalDate นี่คือไวยากรณ์ของวิธีการ:

public static LocalTime parse(CharSequence text,
                              DateTimeFormatter formatter)
มีสองพารามิเตอร์สำหรับเมธอด — ข้อความที่จะแยกวิเคราะห์และตัวจัดรูปแบบที่นักพัฒนาจะใช้ เป็นค่าส่งคืน วิธีการส่งคืนวัตถุ LocalTime ที่จะรับรู้เป็นวัน-เวลาท้องถิ่น ถ้าค่าข้อความไม่สามารถแยกวิเคราะห์ได้ ระบบจะส่ง DayTimeParseException มาดูตัวอย่างโค้ดของการใช้LocalDate parse()กับพารามิเตอร์สองตัว:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class ParserDemo3 {

   public static void main(String[]args) {

       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
       String date = "14/10/2020";
       LocalDate localDate = LocalDate.parse(date, formatter);
       System.out.println("parsed local date: " + localDate);
       System.out.println("formatted local date: " + formatter.format(localDate));
   }
}
ผลลัพธ์คือ:
แยกวิเคราะห์วันที่ท้องถิ่น: 2020-10-14 จัดรูปแบบวันที่ท้องถิ่น: 14/10/2020
เมธอด LocalDate parse()ที่มีพารามิเตอร์หนึ่งตัวมีไวยากรณ์ถัดไป:

public static LocalTime parse(CharSequence text)
วิธีนี้ไม่ต้องระบุฟอร์แมตเตอร์ หลังจากที่นักพัฒนาป้อนค่าสตริงลงในวงเล็บ ระบบจะใช้ DateTimeFormatter.ISO_LOCAL_DATE โดยอัตโนมัติ วิธีนี้มีพารามิเตอร์เดียว — ข้อความ CharSequence คุณสามารถใช้ค่าสตริงได้ที่นี่ ตรวจสอบให้แน่ใจว่าไม่เป็นค่าว่างและเคารพโครงสร้างของฟอร์แมตเตอร์ หากไม่มีวิธีการแยกวิเคราะห์สตริง นักพัฒนาจะได้รับ DateTimeExceptionAlert นี่คือตัวอย่างของ แอปพลิเคชัน LocalDate parse() :

import java.time.*;
public class ParseDemo3 {
       public static void main(String[] args)
       {
           // let’s make a new LocalDate object
           LocalDate localDate = LocalDate.parse("2020-10-14");
           System.out.println("LocalDate : " + localDate);
       }
   }
ผลลัพธ์คือ:
LocalDate : 2020-10-14

4. วิธีการแยกวิเคราะห์ LocalDateTime ()

LocalDateTimeออบเจกต์วันที่และเวลาที่แสดงถึงวันที่และเวลาที่ดูค่อนข้างบ่อยเป็นปี เดือน วัน ชั่วโมง นาที วินาที นอกจากนี้ นักพัฒนายังสามารถใช้ฟิลด์วันที่และเวลาอื่นๆ (วันของปี วันในสัปดาห์ และสัปดาห์ของปี) คลาสนี้ไม่เปลี่ยนรูป เวลาจะแสดงด้วยความแม่นยำระดับนาโนวินาที ตัวอย่างเช่น คุณสามารถจัดเก็บค่า "17 พฤศจิกายน 2020 เวลา 13:30.30.123456789" ใน LocalDateTime ชั้นเรียนนี้ไม่เกี่ยวกับการแสดงเขตเวลา เป็นการแสดงวันที่มาตรฐานบวกกับเวลาท้องถิ่น วิธี การแยกวิเคราะห์ LocalDateTime ()แสดงในสองรูปแบบ:
  • การแยกวิเคราะห์ LocalDateTime แบบคงที่ (ข้อความ CharSequence)ส่งคืนอินสแตนซ์ของ LocalDateTime จากสตริงข้อความ เช่น 2007-12-03T10:15:30
  • การแยกวิเคราะห์ LocalDateTime แบบคงที่ (ข้อความ CharSequence, ตัวจัดรูปแบบ DateTimeFormatter)ส่งคืนอินสแตนซ์ของ LocalDateTime จากสตริงข้อความโดยใช้ตัวจัดรูปแบบเฉพาะ
นี่คือตัวอย่างของLocalDateTime parse()วิธีการ:

import java.time.*;
public class ParseDemo11 {
       public static void main(String[] args) {
           LocalDateTime localDateTime = LocalDateTime.parse("2020-11-17T19:34:50.63");
           System.out.println("LocalDateTime is: " + localDateTime);
       }
   }
ผลลัพธ์คือ:
LocalDateTime คือ: 2020-11-17T19:34:50.630

5. วิธีการแยกวิเคราะห์ ZonedDateTime ()

Class ZonedDateTimeแสดงวันที่-เวลาพร้อมโซนเวลา คลาสนี้ไม่เปลี่ยนรูป โดยจะจัดเก็บฟิลด์วันที่และเวลาด้วยความแม่นยำระดับนาโนวินาที และโซนเวลา พร้อมการชดเชยโซนที่ใช้เพื่อจัดการวันที่-เวลาท้องถิ่นที่ไม่ชัดเจน ดังนั้นหากคุณต้องการเก็บค่าเช่น "14 ตุลาคม 2020 เวลา 17:50.30.123456789 +02:00 ในเขตเวลายุโรป/ปารีส" คุณสามารถใช้ ZonedDateTime ได้ คลาสนี้มักใช้เพื่อจัดการข้อมูลตามเวลาท้องถิ่น ZondeDateTime parse()เป็นตัวแยกวิเคราะห์ที่แบ่งสตริงออกเป็นโทเค็นในระบบ ISO-8061 ต่อไปนี้คือตัวอย่างค่าที่คุณจะได้รับหลังจากแยกวิเคราะห์:
2020-04-05T13:30:25+01:00 ยุโรป/โรม
จะใช้เมื่อใดก็ตามที่ต้องการข้อมูลที่มีความแม่นยำสูง (ท้ายที่สุด ข้อมูลที่คุณได้รับจะแม่นยำถึงระดับนาโนวินาที) คลาสนี้มักใช้เพื่อจัดการข้อมูลตามเวลาท้องถิ่น มาดูไวยากรณ์ทั่วไปของเมธอดZonedDateTime parse()ที่นักพัฒนาใช้เพื่อแปลงค่าสตริงเป็นคลาส ZonedDateTime

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

public static ZonedDateTime parse(CharSequence text, DateFormatter formatter)
วิธีนี้ได้รับอินสแตนซ์ของ ZonedDateTime จากค่าข้อความโดยใช้ตัวจัดรูปแบบเฉพาะ เมธอดที่มีพารามิเตอร์เดียว ตัวจัดรูปแบบDateTimeFormatter.ISO_LOCAL_TIMEจะถูกใช้เป็นค่าเริ่มต้น มาดูกรณีการใช้งานสำหรับการแยกวิเคราะห์ ZonedDateTime ():

// An example program that uses
// ZonedDateTime.parse() method
  
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class ParseDemo4 {
   public static void main(String[] args) {
       ZonedDateTime zonedDateTime = ZonedDateTime.parse("2020-10-15T10:15:30+01:00");
       System.out.println(zonedDateTime);

       DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
       String date = "2020-10-15T13:30:25+01:00";
       ZonedDateTime zoneDateTime1 = ZonedDateTime.parse(date, dateTimeFormatter);
       System.out.println(zoneDateTime1);
   }
}
ผลลัพธ์คือ:
2020-10-15T10:15:30+01:00 2020-10-15T13:30:25+01:00

6. วิธีการแยกวิเคราะห์ LocalTime ()

Class LocalTimeแทนเวลา ซึ่งมักจะดูเป็นชั่วโมงนาทีวินาที คลาสนี้ยังเปลี่ยนรูปไม่ได้ เช่น ZonedDateTime เวลาแสดงด้วยความแม่นยำระดับนาโนวินาที ตัวอย่างเช่น ค่า "13:45.30.123456789" สามารถเก็บไว้ใน LocalTime มีสอง วิธี LocalTime parse()โดยมีพารามิเตอร์หนึ่งและสองตัว ลองดูที่ทั้งสอง:

public static LocalTime parse(CharSequence text)
คุณสามารถใช้LocalTime parse()กับพารามิเตอร์เพียงตัวเดียว ซึ่งเป็นสตริงที่คุณต้องการแยกวิเคราะห์ ในกรณีนี้ ตัวจัดรูปแบบ DateTimeFormatter.ISO_LOCAL_TIME จะถูกใช้เป็นค่าเริ่มต้น

Method with two parameters has the next syntax: 
public static LocalTime parse(CharSequence text,
                              DateTimeFormatter formatter)
รับอินสแตนซ์ของ LocalTime จากค่าข้อความโดยใช้ตัวจัดรูปแบบเฉพาะ ทั้งสองวิธีส่งคืนค่า LocalTime ในรูปแบบ hh/mm/ss ระวังการแจ้งเตือน DateTimeParceException หมายความว่ารูปแบบของข้อความสตริงไม่สอดคล้องกับวัตถุ LocalTime นี่คือตัวอย่างการใช้LocalTime parse()ในการผลิต:

import java.time.*;
import java.time.format.*;
public class ParseDemo5 {

       public static void main(String[] args)
       {

           LocalTime localTime
                   = LocalTime.parse("10:25:30");

           // return the output value
           System.out.println("LocalTime : "
                              + localTime);

           // create a formater
           DateTimeFormatter formatter
                   = DateTimeFormatter.ISO_LOCAL_TIME;

           LocalTime localTime1
                   = LocalTime.parse("12:30:50");
           // parse a string to get a LocalTime object in return

           LocalTime.parse("12:30:50",
               formatter);
           // print the output
           System.out.println("LocalTime : "
                              + localTime1);
       }
   }

7. วิธี MessageFormat Parse()

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

public Object[] parse(String source, ParsePosition position)
โดยที่แหล่งที่มาคือสตริงที่จะแยกวิเคราะห์และตำแหน่งคือดัชนีเริ่มต้นของการแยกวิเคราะห์ นี่คือตัวอย่างการทำงานของ เมธอด MessageFormat parse() :

import java.text.MessageFormat;
import java.text.ParsePosition;

public class ParseDemo7 {
   public static void main(String[] args) {
    try {
           MessageFormat messageFormat = new MessageFormat("{1, number, #}, {0, number, #.#}, {2, number, #.##}");

           ParsePosition pos = new ParsePosition(3);
           Object[] hash = messageFormat.parse("12.101, 21.382, 35.121", pos);

           System.out.println("value after parsing: ");
           for (int i = 0; i < hash.length; i++)
               System.out.println(hash[i]);
       }
       catch (NullPointerException e) {
          System.out.println("\nNull");
          System.out.println("Exception thrown : " + e);
       } }
}

8. วิธีการแยกวิเคราะห์ระดับ ()

เมื่อโปรแกรมเมอร์ใช้ Logger เพื่อบันทึกข้อความ ข้อความนั้นจะถูกบันทึกด้วยระดับบันทึกที่แน่นอน มีเจ็ดระดับบันทึกในตัว:
  • รุนแรง
  • คำเตือน
  • ข้อมูล
  • การกำหนดค่า
  • ดี
  • ละเอียดยิ่งขึ้น
  • ดีที่สุด
นอกจากนี้ยังมีระดับ OFF เพิ่มเติมที่สามารถใช้เพื่อปิดการบันทึกและ ALL ที่สามารถใช้เพื่อเปิดใช้งานการบันทึกข้อความทั้งหมด ระดับ การบันทึกแสดงโดยคลาสjava.util.logging.Level คลาสระดับมีค่าคงที่สำหรับทุก ๆ เจ็ดระดับเหล่านี้ คุณจึงใช้หนึ่งในค่าคงที่เหล่านี้ ซึ่งรวมถึงทั้งหมดและปิดในขณะที่บันทึกข้อความไปยัง Logger นอกจากนี้ ระดับทั้งหมดนี้เริ่มต้นเป็นจำนวนเต็มบางตัว ตัวอย่างเช่น FINE เริ่มต้นที่ 500 เมธอดLevel parse()จะแยกวิเคราะห์ข้อมูลที่จำเป็นจากค่าข้อความและส่งกลับวัตถุระดับ นี่คือไวยากรณ์ของ วิธี การ parse() ระดับ :

public static Level parse(String name)
พารามิเตอร์ของเมธอดคือชื่อของสตริงที่ผู้พัฒนาต้องการแยกวิเคราะห์ อาจเป็นชื่อของระดับ ชื่อเริ่มต้น หรือจำนวนเต็มอื่นๆ ในทางกลับกัน โปรแกรมเมอร์จะได้รับค่าชื่อระดับ ซึ่งสอดคล้องกับค่าของสตริงเริ่มต้น ในกรณีที่อาร์กิวเมนต์มีสัญลักษณ์ที่ไม่สามารถแยกวิเคราะห์ได้ ระบบจะโยน IllegalArgumentException ถ้าสตริงไม่มีค่า นักพัฒนาจะได้รับ NullPointerException นี่คือโค้ดบางส่วนที่แสดงการใช้งานLevel parse( )

import java.util.logging.Level;
public class ParseDemo6 {

   public static void main(String[] args)
   {
       Level level = Level.parse("500");
       System.out.println("Level = " + level.toString());

       Level level1 = Level.parse("FINE");
       System.out.println("Level = " + level1.toString());

       Level level2 = level.parse ("OFF");
       System.out.println(level2.toString());
   }
}
ผลลัพธ์คือ:
ระดับ = FINE ระดับ = FINE OFF

9. วิธีการแยกวิเคราะห์ทันที ()

Instant class จำลองจุดชั่วขณะเดียวบนไทม์ไลน์ คุณสามารถใช้เพื่อบันทึกการประทับเวลาของเหตุการณ์ในแอปของคุณ การแยกวิเคราะห์ทันที ()รับค่าทันทีจากค่าข้อความ สตริงจะถูกจัดเก็บเป็นค่าเขตเวลา UTC ในภายหลัง ระบบใช้ DateTimeFormatter.ISO_INSTANT เช่น 2020-10-14T11:28:15.00Z นี่คือไวยากรณ์ของ วิธี การแยกวิเคราะห์ทันที () :

public static Instant parse(CharSequence text)
ในการแยกวิเคราะห์สตริงและรับทันที นักพัฒนาจำเป็นต้องตรวจสอบให้แน่ใจว่าสตริงมีข้อความบางส่วน ในกรณีที่เป็นโมฆะ คุณจะได้รับ DateTimeException ต่อไปนี้คือตัวอย่างการใช้การแยกวิเคราะห์ทันทีใน Java:

import java.time.Instant;

public class ParseDemo8 {
       public static void main(String[] args) {

           Instant instant = Instant.parse("2020-10-14T10:37:30.00Z");
           System.out.println(instant);
       }
   }
ผลลัพธ์คือ:
2020-10-14T10:37:30Z

10. วิธีการแยกวิเคราะห์ NumberFormat ()

คลาสjava.text.NumberFormatใช้เพื่อจัดรูปแบบตัวเลข NumberFormat parse()เป็นเมธอดเริ่มต้นของคลาสนี้ วิธี การแยกวิเคราะห์ ()ของคลาส NumberFormat แปลงสตริงเป็นตัวเลข นักพัฒนาใช้เพื่อแบ่งสตริงลงไปยังหมายเลขส่วนประกอบ การแยกวิเคราะห์เริ่มต้นจากจุดเริ่มต้นของสตริง หากคุณเรียกใช้setParseIntegerOnly (true)ก่อนที่จะเรียกใช้ เมธอด parse ()ดังที่แสดงในตัวอย่างต่อไปนี้ เฉพาะส่วนที่เป็นจำนวนเต็มเท่านั้นที่จะถูกแปลง นี่คือไวยากรณ์ของNumberFormat parse() :

public Number parse(String str)
ในฐานะพารามิเตอร์ ฟังก์ชันจะรับสตริง ค่าส่งกลับของการแยกวิเคราะห์เป็นค่าตัวเลข หากไม่สามารถแยกวิเคราะห์สตริงที่ขึ้นต้นได้ คุณจะได้รับคำเตือน ParseException หากต้องการดูการประยุกต์ใช้เมธอดNumberFormat parse()โปรดดูตัวอย่างด้านล่าง:

import java.text.NumberFormat;
import java.text.ParseException;

public class ParseDemo9 {

       public static void main(String[] args) throws ParseException {
           NumberFormat numberFormat = NumberFormat.getInstance();
           System.out.println(numberFormat.parse("3,141592"));
           numberFormat.setParseIntegerOnly(true);
           System.out.println(numberFormat.parse("3,141592"));
       }
   }
ผลลัพธ์คือ:
3.141592 3

บทสรุป

มีหลายวิธีในการแยกวิเคราะห์ที่นักพัฒนาสามารถใช้เพื่อแปลงสตริงเป็นประเภทข้อมูลต่างๆ แม้ว่าการจำคำสั่งเหล่านี้อาจดูน่าเบื่อ แต่คำสั่งที่หลากหลายเช่นนี้ทำให้นักพัฒนามีความยืดหยุ่นและแม่นยำมาก อย่าลืมฝึกใช้การแยกวิเคราะห์ข้อมูลเพื่อให้แน่ใจว่าคุณจำไวยากรณ์ได้และจะไม่ลืมว่าพารามิเตอร์ใดที่จำเป็นสำหรับแต่ละวิธี
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION