development

공백 문자가있는 문자열을 구분 기호로 어떻게 분할합니까?

big-blog 2020. 2. 10. 22:15
반응형

공백 문자가있는 문자열을 구분 기호로 어떻게 분할합니까?


java.lang.String.split()모든 공백 문자 ( '', '\ t', '\ n'등)를 구분 기호로 사용하여 문자열을 하위 문자열 배열로 나누 려면 메서드 에 전달 해야하는 정규식 패턴은 무엇입니까 ?


라인에 뭔가

myString.split("\\s+");

모든 공백을 구분 기호로 그룹화합니다.

따라서 문자열이 있으면

"Hello[space][tab]World"

이것은 문자열을 산출 "Hello"하고 "World"와 사이의 빈 공간을 생략 해야 [space]합니다 [tab].

VonC는 지적 자바 먼저 특수 문자로 문자열을 탈출을 시도하고 보내기 때문에, 백 슬래시는 탈출해야 한다는 구문 분석 할 수 있습니다. 원하는 것은 리터럴 "\s"입니다. 즉, 전달해야합니다 "\\s". 약간 혼란 스러울 수 있습니다.

\\s동등[ \\t\\n\\x0B\\f\\r]


대부분의 정규식 방언에는 이런 종류의 물건에 사용할 수있는 편리한 문자 요약이 있습니다.

\w -모든 단어 문자와 일치합니다.

\W -단어가 아닌 문자와 일치합니다.

\s -공백 문자와 일치합니다.

\S -공백 문자 이외의 문자와 일치합니다.

\d -모든 숫자와 일치합니다.

\D -숫자를 제외한 모든 항목과 일치합니다.

"Regex Cheatsheets"를 검색하면 유용한 요약이 많이 나옵니다.


Javascript 에서이 작업 을 수행하려면 다음을 수행해야했습니다.

myString.split(/\s+/g)

"\\ s +"는 트릭을 수행해야합니다


또한 UniCode non-breaking space xA0이있을 수 있습니다 ...

String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking

String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");

Apache Commons Lang에는 공백 문자가있는 문자열을 구분 기호로 분할하는 방법이 있습니다.

StringUtils.split("abc def")

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)

정규식 패턴보다 사용하기가 더 쉽습니다.


아무도 매개 변수없이 String.split ()을 언급하지 않은 것에 놀랐습니다. 그것이 만든 것이 아닙니까? 에서와 같이 :

"abc def ghi".split()

정규 표현식이므로, 공백으로 둘러 쌀 수있는 쉼표, 점 등과 같은 영숫자가 아닌 문자를 원하지 않는다고 가정합니다 (예 : "1, 2"는 [1] [2]를 제공해야 함). 그것은해야한다:

myString.split(/[\s\W]+/)

다음 명령문을 사용하여 줄 바꿈으로 문자열을 분할 할 수 있습니다.

 String textStr[] = yourString.split("\\r?\\n");

다음 명령문을 사용하여 공백으로 문자열을 분할 할 수 있습니다.

String textStr[] = yourString.split("\\s+");

String str = "Hello   World";
String res[] = str.split("\\s+");

이 코드를 공부하십시오. 행운을 빈다

    import java.util.*;
class Demo{
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        System.out.print("Input String : ");
        String s1 = input.nextLine();   
        String[] tokens = s1.split("[\\s\\xA0]+");      
        System.out.println(tokens.length);      
        for(String s : tokens){
            System.out.println(s);

        } 
    }
}

참고 URL : https://stackoverflow.com/questions/225337/how-do-i-split-a-string-with-any-whitespace-chars-as-delimiters



반응형