Kotlina programma, lai pārbaudītu, vai virkne ir skaitliska

Šajā programmā jūs uzzināsiet dažādas metodes, lai pārbaudītu, vai Kotlinā virkne ir skaitliska vai nav.

1. piemērs: pārbaudiet, vai virkne ir skaitliska

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

Palaidot programmu, izeja būs:

 12345s15 nav skaitlis

Iepriekš minētajā programmā mums ir Stringnosaukta virkne, kurā ir pārbaudāmā virkne. Mums ir arī Būla vērtības skaitlis, kas tiek saglabāts, ja gala rezultāts ir skaitlisks vai nav.

Lai pārbaudītu, vai virkne satur tikai skaitļus, kas mēģināt bloķēt, mēs izmantojam Double's parseDouble()metode konvertēt virkni par Double.

Ja tas rada kļūdu (ti, NumberFormatExceptionkļūda), tas nozīmē, ka virkne nav skaitlis, un cipars ir iestatīts uz false. Cits, tas ir skaitlis.

Tomēr, ja vēlaties pārbaudīt, vai virknei virkņu jums tas būtu jāmaina uz funkciju. Un loģika ir balstīta uz izņēmumu mešanu, tas var būt diezgan dārgs.

Tā vietā mēs varam izmantot regulāro izteiksmju spēku, lai pārbaudītu, vai virkne ir skaitliska vai nav, kā parādīts zemāk.

2. piemērs: pārbaudiet, vai virkne ir skaitliska vai neizmanto regulāras izteiksmes (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") )

Palaidot programmu, izeja būs:

 -1234.15 ir skaitlis

Iepriekš minētajā programmā tā vietā, lai izmantotu bloķēšanas mēģinājumu, mēs izmantojam regex, lai pārbaudītu, vai virkne ir skaitliska vai nē. Tas tiek darīts, izmantojot Stringa matches()metodi.

In matches()metodi,

  • -?pieļauj nulles vai vairāk -virknes negatīvajiem skaitļiem.
  • \d+pārbauda virknei jābūt vismaz 1 vai vairāk skaitļiem ( \d).
  • (\.\d+)?pieļauj nulli vai vairāk no norādītā modeļa (\.\d+), kurā
    • \.pārbauda, ​​vai virkne satur .(decimālzīmes) vai nav
    • Ja jā, tad tam jāpievieno vismaz viens vai vairāki skaitļi \d+.

Šeit ir ekvivalents Java kods: Java programma, lai pārbaudītu, vai virkne ir skaitliska vai nav.

Interesanti raksti...