Program Kotlin untuk Memeriksa apakah String adalah Numerik

Dalam program ini, Anda akan mempelajari berbagai teknik untuk memeriksa apakah suatu string numerik atau tidak di Kotlin.

Contoh 1: Periksa apakah sebuah string adalah numerik

 import java.lang.Double.parseDouble fun main(args: Array) ( val string = "12345s15" var numeric = true try ( val num = parseDouble(string) ) catch (e: NumberFormatException) ( numeric = false ) if (numeric) println("$string is a number") else println("$string is not a number") )

Saat Anda menjalankan program, hasilnya adalah:

 12345s15 bukan angka

Dalam program di atas, kami memiliki Stringstring bernama yang berisi string yang akan diperiksa. Kami juga memiliki nilai numerik boolean yang menyimpan apakah hasil akhirnya berupa angka atau bukan.

Untuk memeriksa apakah string berisi angka saja, di blok try, kita menggunakan Double's parseDouble()metode untuk mengkonversi string ke Double.

Jika melontarkan kesalahan (mis. NumberFormatExceptionKesalahan), itu berarti string bukan angka dan numerik disetel ke false. Lain, itu angka.

Namun, jika Anda ingin memeriksa apakah, untuk sejumlah string, Anda perlu mengubahnya menjadi sebuah fungsi. Dan, logikanya didasarkan pada pengecualian lemparan, ini bisa sangat mahal.

Sebagai gantinya, kita dapat menggunakan kekuatan ekspresi reguler untuk memeriksa apakah string itu numerik atau tidak seperti yang ditunjukkan di bawah ini.

Contoh 2: Periksa apakah sebuah string adalah numerik atau tidak menggunakan ekspresi reguler (regex)

 fun main(args: Array) ( val string = "-1234.15" var numeric = true numeric = string.matches("-?\d+(\.\d+)?".toRegex()) if (numeric) println("$string is a number") else println("$string is not a number") )

Saat Anda menjalankan program, hasilnya adalah:

 -1234.15 adalah angka

Dalam program di atas, alih-alih menggunakan blok coba-tangkap, kami menggunakan regex untuk memeriksa apakah string itu numerik atau tidak. Ini dilakukan dengan menggunakan matches()metode String .

Dalam matches()metodenya,

  • -?memungkinkan nol atau lebih -untuk bilangan negatif dalam string.
  • \d+memeriksa string harus memiliki setidaknya 1 atau lebih angka ( \d).
  • (\.\d+)?memungkinkan nol atau lebih dari pola yang diberikan (\.\d+)di mana
    • \.memeriksa apakah string berisi .(titik desimal) atau tidak
    • Jika ya, itu harus diikuti oleh setidaknya satu atau lebih nomor \d+.

Berikut kode Java yang setara: Program Java untuk memeriksa apakah suatu string adalah numerik atau tidak.

Artikel yang menarik...