Přejít na hlavní obsah

Jak zkontrolovat, zda je řetězec číslo v Javě: podrobný průvodce

Při práci s Javou je někdy nutné zkontrolovat, zda je řetězec číslo. To může být užitečné například při čtení uživatelského vstupu nebo při zpracování dat z externího zdroje. Java má několik způsobů, jak tento úkol provést, včetně použití regulárních výrazů a metod třídy Number.

Jedním ze způsobů, jak zkontrolovat řádek na číslo, je použití metod třídy Number, jako jsou parseInt() nebo parseFloat(). Můžete například použít následující kód:

try catch (NumberFormatException e)

Pokud vstupní řádek input může být úspěšně převedeno na celé číslo, pak je to číslo. V opačném případě bude vyřazena výjimka NumberFormatException.

Dalším způsobem, jak zkontrolovat, zda je řetězec číslo, je použití regulárních výrazů. Můžete určit šablonu pro číslo a poté použít metodu matches() třídy String pro kontrolu řetězce, aby odpovídaly této šabloně. Můžete například použít následující kód:

String pattern = "\\d+";if (input.matches(pattern)) else

V tomto příkladu vzor "\\D+ " určuje libovolnou posloupnost číslic. Pokud se vstupní řádek skládá výhradně z číslic, pak je považován za číslo.

Kontrola je řetězec číslo v Javě

MetodaPopis
try-catch blok s metodou parseInt()Pokus o převod řádku na číslo pomocí metody parseInt (). Pokud je převod úspěšný, řetězec je číslo.
try-catch jednotka s metodou Double.parseDouble()Podobně jako předchozí metoda, ale používá se metoda Double.parseDouble(). Tato metoda umožňuje pracovat s čísly s plovoucím bodem.
pravidelné výrazyPoužití regulárních výrazů ke kontrole, zda řetězec odpovídá dané číselné šabloně.

Každá z těchto metod má své klady a zápory a výběr metody závisí na konkrétním úkolu a požadavcích na kontrolu. Je však důležité vzít v úvahu možnost získat chybu během převodu řetězce na číslo a podle toho ji zpracovat.

Metoda 1: Použití metody parseInt

Chcete-li zkontrolovat řádek na číslo, musíte zabalit volání metody parseInt() do bloku try-catch a zachytit výjimku NumberF

Metoda 2: Použití metody Double.parseDouble

Použití metody Double.parseDouble () pro ověření řádku na číslo může být užitečné, pokud potřebujete pracovat také s číselnými hodnotami daného řádku. Pamatujte však, že tato metoda může způsobit vyloučení NumberFormatException, pokud řetězec nelze převést na číslo.

Zde je příklad použití metody Double.parseDouble () pro kontrolu řádku na číslo:

public static boolean isNumeric(String str) catch (NumberFormatException nfe) return true;>

Tato metoda vrací hodnotu true, pokud byla převod řádku na číslo úspěšný, a false, pokud došlo k vyloučení NumberFormatException. Tuto metodu tedy můžete použít k ověření řádku na číslo v Javě.

Metoda 3: Použití metody try-catch

Zde je příklad kódu:

public static boolean isNumeric(String str) catch (NumberFormatException e) return true;>

V tomto příkladu používáme metodu parseDouble () k pokusu převést řetězec na číslo typu double. Pokud řetězec není číslo, bude vyřazena výjimka NumberFormatException a my ji zachytíme pomocí bloku try-catch. Pokud nedojde k žádné výjimce, vrátíme true, což znamená, že řádek je číslo.

System.out.println(isNumeric("123")); // trueSystem.out.println(isNumeric("abc")); // false

Na výstupu dostaneme:

truefalse

Tato metoda nám také umožňuje zkontrolovat, zda je řetězec celé číslo pomocí metody parseInt(). V tomto případě budeme chytat výjimku.

Metoda 4: Použití regulárního výrazu

Pro kontrolu, zda je řetězec číslo, můžeme použít následující regulární výraz:

Tento regulární výraz zkontroluje, zda řetězec začíná volitelným znaménkem "+" nebo " - " následovaným libovolným počtem číslic, které mohou následovat volitelná desetinná čárka a jedna nebo více číslic za ní.

Pro použití regulárního výrazu v Javě můžeme použít třídu vzor z balíčku java.util.regex . Zde je příklad kontroly řádku na číslo pomocí regulárního výrazu:

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main else >>

V tomto příkladu vytvoříme regulární výraz pomocí metody compile třídy vzor . Poté vytvoříme objekt Matcher pomocí metody matcher třídy vzor a použijeme metodu matches ke kontrole, zda řetězec odpovídá regulárnímu výrazu.