Котлин програм за проверу да ли је низ нумерички

У овом програму ћете научити различите технике за проверу да ли је низ нумерички или не у Котлину.

Пример 1: Проверите да ли је низ нумерички

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

Када покренете програм, излаз ће бити:

 12345с15 није број

У горе наведеном програму имамо Stringименовани низ који садржи низ који треба проверити. Такође имамо логичку вредност нумеричку која се чува ако је коначни резултат нумерички или не.

Да бисте проверили да ли стринг садржи само бројеве, у три блоку, користимо DoubleparseDouble()метод за претварање у струна на Double.

Ако баци грешку (тј. NumberFormatExceptionГрешку), значи да стринг није број и да је нумеричка постављена на false. Иначе, то је број.

Међутим, ако желите да проверите да ли ћете за одређени број низова морати да га промените у функцију. И, логика се заснива на бацању изузетака, ово може бити прилично скупо.

Уместо тога, можемо користити снагу регуларних израза да бисмо проверили да ли је низ нумерички или није као што је приказано доле.

Пример 2: Проверите да ли је низ нумерички или не користи регуларне изразе (регуларни израз)

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

Када покренете програм, излаз ће бити:

 -1234,15 је број

У горњем програму, уместо да користимо три-цатцх блок, користимо регуларни израз за проверу да ли је низ нумерички или није. Ово се ради помоћу Стринг-ове matches()методе.

У matches()методи,

  • -?дозвољава нулу или више -за негативне бројеве у низу.
  • \d+проверава да низ мора имати најмање 1 или више бројева ( \d).
  • (\.\d+)?дозвољава нула или више датог обрасца (\.\d+)у коме
    • \.проверава да ли низ садржи .(децималне тачке) или не
    • Ако је одговор да, требало би да га прати бар један или више бројева \d+.

Ево еквивалентног Јава кода: Јава програм за проверу да ли је низ нумерички или није.

Занимљиви Чланци...