CodeGym /Java Blog /Acak /11 metode parse() di Java dengan Contoh
John Squirrels
Level 41
San Francisco

11 metode parse() di Java dengan Contoh

Dipublikasikan di grup Acak
Parsing dalam pengertian yang paling umum adalah ekstraksi informasi yang diperlukan dari beberapa bagian data, paling sering data tekstual. Apa itu parse di Jawa? Ada banyak kelas Java yang memiliki metode parse() . Biasanya metode parse() menerima beberapa string sebagai input, "mengekstrak" informasi yang diperlukan darinya dan mengubahnya menjadi objek dari kelas pemanggil. Misalnya, ia menerima string dan mengembalikan tanggal yang "bersembunyi" di string ini. Dalam posting ini, kita akan melihat 10 variasi berguna dari parse() .

0.parseInt()

Mari kita mulai dari salah satu metode parse() yang paling populer , yang sebenarnya bukan parse() , tetapi parseInt() . Metode Java parseInt () digunakan untuk mendapatkan tipe data primitif dari string tertentu. Dengan kata lain itu mengubah string menjadi angka. parseInt() dapat memiliki satu atau dua argumen. Inilah sintaks dari parseInt() :

static int parseInt(String s)
static int parseInt(String s, int radix)
Di mana s adalah string yang mewakili nilai desimal bertanda dan radix basis sistem numerik. Perlu diingat bahwa tidak ada nilai dasar default — Anda harus memasukkan satu dalam rentang 2 dan 36. Berikut contohnya. Cara mengurai dengan 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));
         
       }
   }
Outputnya adalah:
12 12,0 4 65

1. Metode parse() periode

Periode adalah kelas Java untuk memodelkan kuantitas waktu dalam bentuk tahun, bulan, dan hari seperti "3 tahun, 5 bulan, dan 2 hari". Ini memiliki metode parse() untuk mendapatkan periode dari teks. Inilah sintaks periode parse()

public static Period parse(CharSequence text)
CharSequence adalah Antarmuka, diimplementasikan oleh Strings. Jadi Anda bisa menggunakan Strings sebagai elemen teks dalam metode parse() . Tentu string harus dalam format yang tepat untuk mengembalikan objek kelas Periode. Format ini adalah PnYnMnD . Dimana Y singkatan dari "tahun", M - untuk "bulan", D - untuk "hari". N adalah angka yang sesuai dengan setiap nilai periode.
  • Metode ini memiliki satu parameter — nilai teks.
  • Parse() mengembalikan nilai Periode di mana nilai string menjadi parameter.
  • Sebagai pengecualian, periode parse() dapat mengembalikan DateTimeParseException jika nilai string tidak memenuhi struktur periode.
Berikut adalah contoh penggunaan Period parse() dalam konteks dunia nyata:

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");
   }
}
	} 
} 
Outputnya adalah:
umurnya adalah : 17 Tahun 9 Bulan 5 Hari

2.SimpleDateFormat Parse() metode

SimpleDateFormat adalah kelas yang digunakan untuk memformat dan mem-parsing tanggal dengan cara yang sensitif terhadap lokal. Metode parse() SimpleDateFormat memecah string menjadi token tanggal dan mengembalikan nilai Data dalam format yang sesuai. Metode mulai menguraikan string pada indeks, yang ditentukan oleh pengembang. Ini adalah sintaks dari SimpleDateFormat parse() :

public Date parse(String the_text, ParsePosition position)
Metode ini memiliki dua parameter:
  • Posisi: data pada indeks awal yang selalu merupakan tipe objek ParsePosition.
  • the_text: mendefinisikan string yang akan diurai oleh metode dan merupakan nilai tipe String.
Anda dapat menggunakan metode ini tanpa deklarasi posisi. Dalam hal ini data dimulai dari indeks nol. SimpleDateFormat parse() mengembalikan tanggal atau nilai nol (seandainya string tidak diproses karena kesalahan). Berikut adalah contoh implementasi 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);
   }
}
Outputnya adalah:
Rab 14 Okt 00:00:00 EEST 2020 Rab 14 Okt 00:00:00 EEST 2020 Rab 14 Okt 00:00:00 EEST 2020 Min 04 Okt 00:00:00 EEST 2020 null
Yang terakhir null karena tidak ada pola tanggal mulai dari posisi ke-5. Ngomong-ngomong, jika Anda mencoba mengurai date5 tanpa posisi seperti Date date5 = simpleDateFormat2.parse(myString) , Anda akan mendapatkan pengecualian:
Pengecualian di utas "utama" java.text.ParseException: Tanggal yang tidak dapat diurai: "inilah tanggalnya: 14/010/2020" di java.base/java.text.DateFormat.parse(DateFormat.java:396) di ParseDemo2.main (ParseDemo2.java:22)

3. Metode localDate parse()

LocalDate adalah kelas yang muncul di Java 8 untuk mewakili tanggal seperti tahun-bulan-hari (hari-tahun, hari-minggu dan minggu-tahun, juga dapat diakses). LocalDate tidak mewakili waktu atau zona waktu. Metode LocalDate parse() memiliki dua varian. Keduanya membantu mengonversi string menjadi API tanggal Java 8 baru — java.time.LocalDate .

parse (teks CharSequence, DateTimeFormatter, formatter)

Metode ini mem-parsing string menggunakan pemformat khusus untuk mendapatkan turunan dari LocalDate. Berikut sintaks dari metode ini:

public static LocalTime parse(CharSequence text,
                              DateTimeFormatter formatter)
Ada dua parameter untuk metode ini — teks yang akan diuraikan dan pemformat yang akan diterapkan pengembang. Sebagai nilai kembalian, metode mengembalikan objek LocalTime yang akan dikenali sebagai siang hari lokal. Jika nilai teks tidak dapat melalui penguraian, sistem akan melontarkan DayTimeParseException. Mari kita contoh kode menggunakan LocalDate parse() dengan dua parameter:

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));
   }
}
Outputnya adalah:
parsing tanggal lokal: 14-10-2020 format tanggal lokal: 14/10/2020
Metode LocalDate parse() dengan satu parameter memiliki sintaks berikutnya:

public static LocalTime parse(CharSequence text)
Metode ini tidak memerlukan penetapan formatter. Setelah pengembang memasukkan nilai string ke dalam tanda kurung, sistem akan secara otomatis menggunakan DateTimeFormatter.ISO_LOCAL_DATE. Metode ini memiliki parameter tunggal — teks CharSequence. Anda dapat menggunakan nilai string di sini. Pastikan itu bukan null dan menghormati struktur formatter. Jika tidak ada cara untuk mengurai string, pengembang mendapatkan DateTimeExceptionAlert. Berikut adalah contoh aplikasi 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);
       }
   }
Outputnya adalah:
Tanggal Lokal : 14-10-2020

4. Metode penguraian () LocalDateTime

LocalDateTime objek tanggal-waktu yang mewakili tanggal-waktu sering dilihat sebagai tahun-bulan-hari-jam-menit-detik. Pengembang juga dapat menggunakan bidang tanggal dan waktu lainnya (hari dalam setahun, hari dalam seminggu, dan minggu dalam setahun). Kelas ini tidak dapat diubah. Waktu direpresentasikan dengan presisi nanodetik. Misalnya, Anda dapat menyimpan nilai "17 November 2020 pukul 13:30.30.123456789" di LocalDateTime. Kelas ini bukan tentang mewakili zona waktu. Ini lebih merupakan representasi tanggal standar ditambah waktu setempat. Metode LocalDateTime parse() direpresentasikan dalam dua varian:
  • parse LocalDateTime statis (teks CharSequence) mengembalikan instance LocalDateTime dari string teks seperti 2007-12-03T10:15:30.
  • parse LocalDateTime statis (teks CharSequence, formatter DateTimeFormatter) mengembalikan instance LocalDateTime dari string teks menggunakan formatter tertentu.
Berikut adalah contoh metode parse() LocalDateTime :

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);
       }
   }
Outputnya adalah:
LocalDateTime adalah: 2020-11-17T19:34:50.630

5. Metode parse() ZonedDateTime

Class ZonedDateTime mewakili tanggal-waktu dengan zona waktu. Kelas ini tidak dapat diubah. Ini menyimpan bidang tanggal dan waktu dengan presisi nanodetik, dan zona waktu, dengan offset zona yang digunakan untuk menangani waktu tanggal lokal yang ambigu. Jadi, jika Anda perlu mempertahankan nilai seperti "14 Oktober 2020 pukul 17:50.30.123456789 +02:00 di zona waktu Eropa/Paris", Anda dapat menggunakan ZonedDateTime. Kelas sering digunakan untuk memanipulasi data berbasis waktu lokal. ZondeDateTime parse() adalah parser yang memecah string menjadi token dalam sistem ISO-8061. Berikut adalah contoh nilai yang akan Anda dapatkan setelah parsing:
2020-04-05T13:30:25+01:00 Eropa/Roma
Ini digunakan kapan pun data presisi tinggi diperlukan (setelah semua, data yang Anda dapatkan tepat hingga nanodetik). Kelas sering digunakan untuk memanipulasi data berbasis waktu lokal. Mari kita lihat sintaks umum metode parse() ZonedDateTime yang digunakan pengembang untuk mengubah nilai string menjadi kelas ZonedDateTime.

public static ZonedDateTime parse(CharSequence text)
Satu-satunya parameter yang digunakan metode ini adalah teks string. Sebagai nilai balik, Anda akan mendapatkan satu atau serangkaian objek dalam format ZonedDateTime. Jika ada kesalahan selama penguraian atau tidak mungkin, untuk memulainya, metode mengembalikan DateTimeParseException. Juga ada metode parse() dengan dua variabel.

public static ZonedDateTime parse(CharSequence text, DateFormatter formatter)
Metode ini mendapatkan instance ZonedDateTime dari nilai teks menggunakan formatter tertentu. Metode dengan satu parameter, formatter DateTimeFormatter.ISO_LOCAL_TIME digunakan secara default. Mari kita lihat kasus penggunaan untuk ZonedDateTime parse():

// 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);
   }
}
Outputnya adalah:
2020-10-15T10:15:30+01:00 2020-10-15T13:30:25+01:00

6. Metode penguraian () LocalTime

Class LocalTime mewakili waktu, sering dilihat sebagai jam-menit-detik. Kelas ini juga tidak dapat diubah seperti ZonedDateTime.Time direpresentasikan dengan presisi nanodetik. Misalnya, nilai "13:45.30.123456789" dapat disimpan di LocalTime. Ada dua metode LocalTime parse() , dengan satu dan dua parameter. Mari kita lihat keduanya:

public static LocalTime parse(CharSequence text)
Anda dapat menggunakan LocalTime parse() hanya dengan satu parameter, string yang ingin Anda parse. Dalam hal ini, formatter DateTimeFormatter.ISO_LOCAL_TIME digunakan secara default.

Method with two parameters has the next syntax: 
public static LocalTime parse(CharSequence text,
                              DateTimeFormatter formatter)
Itu Memperoleh instance LocalTime dari nilai teks menggunakan formatter tertentu. Kedua metode mengembalikan nilai LocalTime dalam format hh/mm/ss. Hati-hati dengan peringatan DateTimeParceException. Artinya, format teks string tidak sesuai dengan format objek LocalTime. Berikut adalah contoh penggunaan LocalTime parse() dalam produksi:

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. Metode MessageFormat Parse()

MessageFormat memperluas kelas Format. Format adalah kelas dasar abstrak untuk memformat data sensitif-lokal (tanggal, pesan, dan angka). MessageFormat mendapatkan beberapa objek dan memformatnya. Kemudian itu memasukkan string yang diformat ke dalam pola di tempat yang sesuai. MessageFormat parse() digunakan untuk mendapatkan nilai string jika diberi indeks awal. Berikut sintaks umum dari metode ini:

public Object[] parse(String source, ParsePosition position)
Di mana sumber adalah string untuk diurai dan posisi adalah indeks awal penguraian. Berikut adalah contoh metode MessageFormat parse() yang berfungsi:

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. Metode parse() tingkat

Ketika seorang programmer menggunakan Logger untuk mencatat pesan, pesan itu dicatat dengan tingkat log tertentu. Ada tujuh level log bawaan:
  • BERAT
  • PERINGATAN
  • INFO
  • KONFIG
  • BAGUS
  • LEBIH HALUS
  • TERBAIK
Juga ada level tambahan MATI yang dapat digunakan untuk mematikan pencatatan dan SEMUA yang dapat digunakan untuk mengaktifkan pencatatan semua pesan. Level log diwakili oleh kelas java.util.logging.Level . Kelas level berisi konstanta untuk setiap tujuh level ini. Jadi Anda menggunakan salah satu dari konstanta ini, termasuk All dan OFF saat mencatat pesan ke Logger. Juga semua level ini diinisialisasi ke beberapa bilangan bulat. Misalnya FINE diinisialisasi ke 500. Metode Level parse() mem-parsing informasi yang diperlukan dari nilai teks dan mengembalikan objek Level. Inilah sintaks dari metode level parse() :

public static Level parse(String name)
Parameter metode adalah nama string yang ingin diurai oleh pengembang. Itu bisa berupa nama level, nama inisialisasi atau bilangan bulat lainnya. Sebagai imbalannya, seorang programmer mendapatkan nilai nama Level, sesuai dengan string awal. Jika argumen berisi simbol yang tidak mungkin diurai, sistem akan melontarkan IllegalArgumentException. Jika string tidak berisi nilai, developer mendapatkan NullPointerException. Berikut adalah potongan kode yang menunjukkan penerapan 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());
   }
}
Outputnya adalah:
Tingkat = HALUS Tingkat = HALUS MATI

9. Metode parse() instan

Kelas instan memodelkan satu titik instan pada garis waktu. Anda dapat menggunakannya untuk merekam stempel waktu acara di aplikasi Anda. Parse instan () memperoleh nilai Instan dari nilai teks. String nantinya akan disimpan sebagai Nilai Zona Waktu UTC. Sistem menggunakan DateTimeFormatter.ISO_INSTANT seperti 2020-10-14T11:28:15.00Z. Berikut adalah sintaks dari metode Instant parse() :

public static Instant parse(CharSequence text)
Untuk mengurai string dan mendapatkan instan, pengembang perlu memastikan string tersebut berisi beberapa teks. Jika nol, Anda akan mendapatkan DateTimeException. Berikut adalah contoh penggunaan Instant parse di 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);
       }
   }
Outputnya adalah:
2020-10-14T10:37:30Z

10. Metode parse() NumberFormat

Kelas java.text.NumberFormat digunakan untuk memformat angka. NumberFormat parse() adalah metode default kelas ini. Metode parse () dari kelas NumberFormat mengubah string menjadi angka. Pengembang menggunakannya untuk memecah string menjadi nomor komponennya. Parsing dimulai dari awal string. Jika Anda memanggil setParseIntegerOnly (true) sebelum memanggil metode parse () , seperti yang ditunjukkan pada contoh berikut, maka hanya bagian bilangan bulat dari angka yang dikonversi. Berikut sintaks NumberFormat parse() :

public Number parse(String str)
Sebagai parameter, fungsi menerima string. Nilai kembalian dari parsing adalah nilai numerik. Jika awalan string tidak dapat diuraikan, Anda akan mendapatkan peringatan ParseException. Untuk melihat penerapan metode NumberFormat parse() , lihat contoh di bawah ini:

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"));
       }
   }
Outputnya adalah:
3.141592 3

Kesimpulan

Ada banyak metode penguraian yang dapat digunakan pengembang untuk mengonversi string menjadi berbagai tipe data. Meskipun mengingatnya mungkin tampak membosankan, variasi perintah seperti itu memberi pengembang banyak fleksibilitas dan presisi. Pastikan untuk berlatih menggunakan penguraian data untuk memastikan Anda mengingat sintaks dan tidak akan melupakan parameter mana yang penting untuk setiap metode.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION