Bir Dizenin Sayısal Olup Olmadığını Kontrol Etmek İçin Kotlin Programı

Bu programda, Kotlin'de bir dizenin sayısal olup olmadığını kontrol etmek için farklı teknikler öğreneceksiniz.

Örnek 1: Bir dizenin sayısal olup olmadığını kontrol edin

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

Programı çalıştırdığınızda, çıktı:

 12345s15 bir sayı değil

Yukarıdaki programda, Stringkontrol edilecek dizeyi içeren adlandırılmış bir dizimiz var. Ayrıca, nihai sonucun sayısal olup olmadığını saklayan sayısal bir boole değerimiz de var.

String'in yalnızca sayı içerip içermediğini kontrol etmek için, try bloğunda, dizeyi a'ya dönüştürmek için Double's parseDouble()yöntemini kullanırız Double.

Bir hata atarsa ​​(yani NumberFormatExceptionhata), dizenin bir sayı olmadığı ve sayısal değerin olarak ayarlandığı anlamına gelir false. Aksi takdirde, bu bir sayıdır.

Bununla birlikte, birkaç dizge için kontrol etmek istiyorsanız, bunu bir işleve dönüştürmeniz gerekir. Ve mantık, istisnalar atmaya dayanıyor, bu oldukça pahalı olabilir.

Bunun yerine, aşağıda gösterildiği gibi dizenin sayısal olup olmadığını kontrol etmek için normal ifadelerin gücünü kullanabiliriz.

Örnek 2: Bir dizenin sayısal olup olmadığını veya normal ifadeler kullanıp kullanmadığını kontrol edin (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") )

Programı çalıştırdığınızda, çıktı:

 -1234.15 bir sayıdır

Yukarıdaki programda, bir try-catch bloğu kullanmak yerine, dizenin sayısal olup olmadığını kontrol etmek için regex kullanırız. Bu, String'in matches()yöntemi kullanılarak yapılır .

İn matches()yöntemi,

  • -?-dizedeki negatif sayılar için sıfır veya daha fazlasına izin verir .
  • \d+dizenin en az 1 veya daha fazla sayı içermesi gerektiğini kontrol eder ( \d).
  • (\.\d+)?sıfır veya verilen bir yapının daha fazla olanak sağlar (\.\d+)ki burada
    • \.dizenin .(ondalık nokta) içerip içermediğini kontrol eder
    • Evet ise, en az bir veya daha fazla numara takip etmelidir \d+.

İşte eşdeğer Java kodu: Bir dizenin sayısal olup olmadığını kontrol etmek için Java programı.

Ilginç makaleler...