Program Kotlin untuk Memeriksa Adakah Rentetan Berangka

Dalam program ini, anda akan mempelajari teknik yang berbeza untuk memeriksa apakah rentetan berangka atau tidak di Kotlin.

Contoh 1: Periksa sama ada rentetan berangka

 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") )

Semasa anda menjalankan program, outputnya adalah:

 12345s15 bukan nombor

Dalam program di atas, kami mempunyai Stringrentetan bernama yang mengandungi rentetan untuk diperiksa. Kami juga mempunyai angka nilai boolean yang menyimpan jika hasil akhirnya berangka atau tidak.

Untuk menyemak sama ada rentetan mengandungi nombor sahaja, dalam blok percubaan, kami menggunakan Double's parseDouble()kaedah untuk menukar rentetan kepada Double.

Sekiranya melemparkan ralat (mis. NumberFormatExceptionRalat), itu bermaksud tali bukan angka dan angka diatur ke false. Lain, itu nombor.

Walau bagaimanapun, jika anda ingin memeriksa apakah, untuk sebilangan rentetan, anda perlu mengubahnya menjadi fungsi. Dan, logiknya berdasarkan pengecualian melemparkan, ini boleh menjadi sangat mahal.

Sebagai gantinya, kita dapat menggunakan kekuatan ungkapan biasa untuk memeriksa apakah rentetan berangka atau tidak seperti yang ditunjukkan di bawah.

Contoh 2: Periksa sama ada rentetan berangka atau tidak menggunakan ungkapan biasa (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") )

Semasa anda menjalankan program, outputnya adalah:

 -1234.15 adalah nombor

Dalam program di atas, alih-alih menggunakan blok try-catch, kami menggunakan regex untuk memeriksa apakah rentetan berangka atau tidak. Ini dilakukan menggunakan matches()kaedah String .

Dalam matches()kaedah tersebut,

  • -?membenarkan sifar atau lebih -untuk nombor negatif dalam rentetan.
  • \d+periksa rentetan mesti mempunyai sekurang-kurangnya 1 atau lebih nombor ( \d).
  • (\.\d+)?membenarkan sifar atau lebih daripada corak yang diberikan (\.\d+)di mana
    • \.memeriksa apakah rentetan mengandungi .(titik perpuluhan) atau tidak
    • Sekiranya ya, ia mesti diikuti oleh sekurang-kurangnya satu atau lebih nombor \d+.

Inilah kod Java yang setara: Program Java untuk memeriksa sama ada rentetan berangka atau tidak.

Artikel menarik...