Tässä ohjelmassa opit erilaisia tekniikoita tarkistaaksesi, onko merkkijono numeerinen vai ei Java-kielellä.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java-merkkijono
- Java-poikkeusten käsittely
Esimerkki 1: Tarkista, onko merkkijono numeerinen
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"); ) )
Tuotos
12345.15 on luku
Yllä olevassa ohjelmassa meillä on String
nimetty merkkijono, joka sisältää tarkistettavan merkkijonon. Meillä on myös looginen arvo numeerinen, joka tallentaa, jos lopputulos on numeerinen vai ei.
Tarkistaa, jos merkkijono sisältää vain numeroita, että yrittää estää, käytämme Double
n parseDouble()
menetelmää muuntaa merkkijonon Double
.
Jos se heittää virheen (eli NumberFormatException
virheen), se tarkoittaa, että merkkijono ei ole numero ja numero on asetettu false
. Muuten, se on numero.
Jos haluat kuitenkin tarkistaa, onko joissakin merkkijonoissa, sinun on vaihdettava se funktioksi. Ja logiikka perustuu heittää poikkeuksia, se voi olla melko kallista.
Sen sijaan voimme käyttää säännöllisten lausekkeiden voimaa tarkistaa, onko merkkijono numeerinen vai ei, kuten alla on esitetty.
Esimerkki 2: Tarkista, onko merkkijono numeerinen vai ei, käytäkö säännöllisiä lausekkeita (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"); ) )
Tuotos
-1234.15 on luku
Yllä olevassa ohjelmassa yritämme kiinni-lohkon sijasta käyttää regexiä tarkistaaksemme, onko merkkijono numeerinen vai ei. Tämä tehdään Stringin matches()
menetelmällä.
Tässä matches()
menetelmässä,
-?
sallii nollan tai enemmän-
merkkijonon negatiivisille numeroille.\d+
tarkistaa, että merkkijonossa on oltava vähintään yksi tai useampi numero (\d
).(\.\d+)?
sallii nollan tai enemmän annetusta kuviosta(\.\d+)
, jossa\.
tarkistaa, sisältääkö merkkijono.
(desimaalipisteitä) vai ei- Jos kyllä, sen jälkeen tulee olla vähintään yksi tai useampi numero
\d+
.