Metoda String replaceAll v Javě vyhledává zadaný řetězec nebo zadanou hodnotu nebo výraz regulárního výrazu, na jehož základě má stejné návrhy, vrací nový řetězec se souvisejícími znaky. V tomto článku se dozvíme o metodě Java replaceAll.
Java String replaceAll()
Tato metoda nahrazuje každý podřetězec řetězce, který odpovídá danému regulárnímu výrazu s daným nahradit_str.
Syntaxe Java replaceAll String
public String replaceAll(String regex, String replace_str)>
Parametry
- regulární výraz: regulární výraz, kterému má být tento řetězec přiřazen. nahradit_str: řetězec, který by nahradil nalezený výraz.
Návratová hodnota
- Tato metoda vrací výsledný řetězec.
Příklad metody String.replaceAll v Javě
Jáva
// Java code to demonstrate the> // working of replaceAll()> public> class> rep2 {> >public> static> void> main(String args[])> >{> >// Initialising String> >String Str =>new> String(>'Welcome to geeksforgeeks'>);> >// original string> >System.out.print(>'Original String : '>);> >System.out.println(Str);> >// Using replaceAll to replace regex with> >// replace_str> >System.out.print(> >'After replacing regex with replace_str : '>);> >System.out.println(> >Str.replaceAll(>'(.*)geeks(.*)'>,>'ASTHA TYAGI'>));> >}> }> |
>
>Výstup
Original String : Welcome to geeksforgeeks After replacing regex with replace_str : ASTHA TYAGI>
Výjimky s String.replaceAll Java
Metoda String replaceAll je sice v Javě velmi účinná, ale i ona přichází s určitými výjimkami, jak je uvedeno níže:
1. Neplatný regulární výraz
Neplatný regulární výraz při předání v metodě raplaceAll() vyvolá výjimku PatternSyntaxException.
Příklad:
Jáva
// Java Program to demonstrate> // replaceAll() method> import> java.io.*;> // Driver class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >// input string> >String str =>'GFG'>;> >System.out.println(str);> >// NULL Regular expression> >String regex =>''>;> >// Passing null expression in> >// replaceAll method> >str = str.replaceAll(regex,>);> >System.out.println(str);> >}> }> |
>
>
Výstup
Exception in thread 'main' java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 at java.base/java.util.regex.Pattern.error(Pattern.java:2027) at java.base/java.util.regex.Pattern.compile(Pattern.java:1788) at java.base/java.util.regex.Pattern.(Pattern.java:1428) at java.base/java.util.regex.Pattern.compile(Pattern.java:1068) at java.base/java.lang.String.replaceAll(String.java:2126) at GFG.main(GFG.java:11)>
2. Regulární výraz Null
Regulární výraz null metoda replaceAll() nepřijímá, vyvolává výjimku NullPointerException.
Příklad:
Jáva
řetězec do pole java
// Java Program to demonstrate> // replaceAll() method> import> java.io.*;> // Driver class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >// input string> >String str =>'GFG'>;> >System.out.println(str);> >// NULL Regular expression> >String regex =>null>;> >// Passing null expression in> >// replaceAll method> >str = str.replaceAll(regex,>);> >System.out.println(str);> >}> }> |
>
>
Výstup
Exception in thread 'main' java.lang.NullPointerException at java.base/java.util.regex.Pattern.(Pattern.java:1426) at java.base/java.util.regex.Pattern.compile(Pattern.java:1068) at java.base/java.lang.String.replaceAll(String.java:2126) at GFG.main(GFG.java:11)>