Di bagian sebelumnya kita mempelajari metode pertama - mengurai string menggunakan pembatas default. Di bagian ini kita mempelajari metode kedua - mengurai string menggunakan ekspresi reguler sebagai pembatas .
Perlu kita ketahui bahwa jika objek Scanner ingin menggunakan tanda pisah default yaitu spasi untuk mengurai data dalam string, maka diharuskan menggunakan spasi untuk memisahkan data dalam string dari karakter lain, jika tidak maka akan terjadi tidak dapat mengurai data yang kita perlukan.
Faktanya, objek Scanner juga dapat memanggil metode:
useDelimiter(ekspresi reguler);
Gunakan ekspresi reguler sebagai pembatas, artinya, ketika objek Pemindai mengurai string, ia menggunakan string yang cocok dengan ekspresi reguler sebagai pembatas.
Misalnya, parsing string menggunakan ekspresi reguler (cocok dengan semua string non-numerik) String regex = [^0123456789.]+ sebagai tanda pembatas.
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Stringcost=Daftar tagihan telepon: biaya panggilan lokal 66,66 yuan, biaya panggilan jarak jauh 166,66 yuan, biaya pesan teks 16,16 yuan;Scannerscanner=newScanner(biaya);scanner. useDelimiter([^0123456789. ]+);//scanner menyetel tanda pemisah doublesum=0; while(scanner.hasNext()){try{doubleprice=scanner.nextDouble();sum=sum+price;System.out. println(price);}catch (InputMismatchExceptionexp){Stringt=scanner.next();}}System.out.println(Total biaya komunikasi: +jumlah+yuan);}}
Hasil yang berjalan adalah sebagai berikut:
66.66166.6616.16 Total biaya komunikasi: 249,48 yuan