programing

파이프 문자("|")로 문자열 분할

prostudy 2022. 5. 16. 20:58
반응형

파이프 문자("|")로 문자열 분할

이 문자열에서 값을 분할할 수 없는 경우:

"Food 1 | Service 3 | Atmosphere 3 | Value for money 1 "

내 현재 코드:

String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
String[] value_split = rat_values.split("|");

출력

[, F, o, o, d, , 1, , |, , S, e, r, v, i, c, e, , 3, , |, , A, t, m, o, s, p, h, e, r, e, , 3, , |, , V, a, l, u, e, , f, o, r, , m, o, n, e, y, , 1, ]

예상출력

식품 1
서비스 3
대기 3
화폐가치1

|레게스의 메타차박터야넌 탈출할 필요가 있어:

String[] value_split = rat_values.split("\\|");

패턴 사용.인용 부호

String[] value_split = rat_values.split(Pattern.quote("|"));

//System.out.println(Arrays.toString(rat_values.split(Pattern.quote("|")))); //(FOR GETTING OUTPUT)

이스케이프 문자 사용(미터카락터용)

String[] value_split = rat_values.split("\\|");
//System.out.println(Arrays.toString(rat_values.split("\\|"))); //(FOR GETTING OUTPUT)

StringTokenizer 사용(정규 표현식 문제 방지용)

public static String[] splitUsingTokenizer(String Subject, String Delimiters) 
{
     StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters);
     ArrayList<String> ArrLis = new ArrayList<String>(Subject.length());
     while(StrTkn.hasMoreTokens())
     {
       ArrLis.add(StrTkn.nextToken());
     }
     return ArrLis.toArray(new String[0]);
}

패턴 클래스 사용(java.util.regex).패턴)

Arrays.asList(Pattern.compile("\\|").split(rat_values))
//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)

출력

[Food 1 ,  Service 3 ,  Atmosphere 3 ,  Value for money 1 ]

또는.. :

String[] value_split = rat_values.split(Pattern.quote("|"));

이는 regex를 받아들이기 때문에 발생하는 현상이다.

|regex에 특별한 의미를 가지고 있다.

quoteregex에 대한 String 표현을 반환한다.

분할은 매개 변수로 regex를 사용한다.|regex에 특별한 의미가 있다.사용하다\\|대신에|피하려고 말이야

String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
    String[] value_split = rat_values.split("\\|");
    for (String string : value_split) {

        System.out.println(string);

    }

참조URL: https://stackoverflow.com/questions/21524642/splitting-string-with-pipe-character

반응형