알파벳이나 숫자가 아닌 문자를 특수문자라고 합니다. 문자열을 명확하고 유창하게 읽을 수 있도록 문자열에서 모든 특수 문자를 제거해야 합니다. 특수 문자는 읽을 수 없으므로, 읽기 전에 특수 문자를 제거하는 것이 좋습니다.
자바 교체All() 메서드
자바 모두 다 바꿔() 의 방법 끈 클래스는 주어진 정규식과 일치하는 이 문자열의 각 하위 문자열을 대체 문자열로 바꿉니다.
통사론
public String replaceAll(String regex, String replacement)
이 방법은 허용 둘 매개변수:
그것은 결과 문자열 . 그것은 던진다 패턴구문예외 정규식 구문이 유효하지 않은 경우. 위의 방법은 다음 표현식과 동일한 결과를 산출합니다.
Pattern.compile(regex).matcher(str).replaceAll(repl)
replaceAll() 메소드를 사용하여 특수 문자를 제거하는 예
다음 예제에서 RemoveAll() 메서드는 문자열에서 모든 특수 문자를 제거하고 그 자리에 공백을 넣습니다.
public class RemoveSpecialCharacterExample1 { public static void main(String args[]) { String str= 'This#string%contains^special*characters&.'; str = str.replaceAll('[^a-zA-Z0-9]', ' '); System.out.println(str); } }
산출
This string contains special characters
예
다음 예에서는 모든 특수 문자를 공백으로 바꿉니다.
public class RemoveSpecialCharacterExample2 { public static void main(String args[]) { String str = 'Hello+-^Java+ -Programmer^ ^^-- ^^^ +!'; str = str.replaceAll('[-+^]*', ' '); //str=str.replaceAll('\W', ' ') //we can also use this regular expression System.out.println(str); } }
산출
Hello Java Programmer !
사용자 정의 로직을 이용한 특수문자 제거 예시
다음 예에서는 문자열에서 특수 문자를 제거하는 논리를 정의합니다. 우리는 대문자 알파벳의 ASCII 값이 65부터 90(A-Z)까지 시작하고 소문자 알파벳의 ASCII 값이 97부터 122(a-z)까지 시작한다는 것을 알고 있습니다. 각 문자는 해당 ASCII 값과 비교됩니다. 지정된 조건이 모두 true를 반환하면 true를 반환하고 그렇지 않으면 false를 반환합니다. 그만큼 for 루프 문자열 길이까지 실행됩니다. 문자열이 해당 크기에 도달하면 실행이 종료되고 결과 문자열이 반환됩니다.
public class RemoveSpecialCharacterExample3 { public static void main(String[] args) { //declare a string having special characters String str='Pr!ogr#am%m*in&g Lan?#guag(e'; String resultStr=''; //loop execute till the length of the string for (int i=0;i64 && str.charAt(i)<=122) returns true if both conditions { adding characters into empty string resultstr="resultStr+str.charAt(i);" } system.out.println('string after removing special characters: '+resultstr); < pre> <p> <strong>Output</strong> </p> <pre> String after removing special characters: ProgrammingLanguage </pre> <hr></=122)>
=122)>