„Kotlin“ programa, skirta patikrinti, ar eilutė yra skaitinė

Šioje programoje išmoksite įvairių metodų, kad patikrintumėte, ar Kotline eilutė yra skaitinė, ar ne.

1 pavyzdys: patikrinkite, ar eilutė yra skaitinė

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

Kai paleisite programą, išvestis bus:

 12345s15 nėra skaičius

Pirmiau pateiktoje programoje mes turime Stringpavadintą eilutę, kurioje yra tikrintina eilutė. Mes taip pat turime loginę reikšmės skaitmenį, kuri saugoma, jei galutinis rezultatas yra skaitinis, ar ne.

Norėdami patikrinti, ar eilutė yra tik skaičiai, o bando blokuoti, mes naudojame Double's parseDouble()metodą konvertuoti eilutę iki A Double.

Jei tai sukelia klaidą (ty NumberFormatExceptionklaidą), tai reiškia, kad eilutė nėra skaičius, o skaitmeninė vertė yra nustatyta false. Kitaip, tai skaičius.

Tačiau, jei norite patikrinti, ar kelioms eilutėms jums reikės ją pakeisti į funkciją. Logika pagrįsta išmetimo išimtimis, tai gali būti gana brangu.

Vietoj to, mes galime naudoti reguliarių posakių galią, kad patikrintume, ar eilutė yra skaitinė, ar ne, kaip parodyta žemiau.

2 pavyzdys: Patikrinkite, ar eilutė yra skaitinė, ar nenaudoja taisyklingų posakių (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") )

Kai paleisite programą, išvestis bus:

 -1234.15 yra skaičius

Ankstesnėje programoje, užuot naudoję bandymo gaudymo bloką, mes naudojame regex, kad patikrintume, ar eilutė yra skaitinė, ar ne. Tai daroma naudojant Stringo matches()metodą.

Pagal matches()metodą

  • -?leidžia nuliui ar daugiau -neigiamų skaičių eilutėje.
  • \d+patikrina, ar eilutėje turi būti bent 1 ar daugiau skaičių ( \d).
  • (\.\d+)?leidžia nulį ar daugiau nurodyto modelio (\.\d+), kuriame
    • \.patikrina, ar eilutėje yra .(dešimtainiai taškai), ar ne
    • Jei taip, po jo turėtų būti nurodytas bent vienas ar keli skaičiai \d+.

Čia yra lygiavertis „Java“ kodas: „Java“ programa, skirta patikrinti, ar eilutė yra skaitinė, ar ne.

Įdomios straipsniai...