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

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

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java virkne
  • Java izņēmumu apstrāde

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

 public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Rezultāts

 12345.15 ir skaitlis

Iepriekš minētajā programmā mums ir Stringnosaukta virkne, kas satur pārbaudāmo virkni. 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 ir tikai skaitļi, 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 ir virkne virkņu, jums tas 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)

 public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Rezultāts

 -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+.

Interesanti raksti...