반응형
파이프 문자("|")로 문자열 분할
이 문자열에서 값을 분할할 수 없는 경우:
"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에 특별한 의미를 가지고 있다.
quote
regex에 대한 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
반응형
'programing' 카테고리의 다른 글
"|="는 무슨 뜻인가?(파이프 이퀄 오퍼레이터) (0) | 2022.05.16 |
---|---|
스프링 부트 - 예외를 포함한 모든 요청 및 응답을 한 곳에 기록하는 방법 (0) | 2022.05.16 |
Vuejs 렌더링 기능 내에서 슬롯을 복제하는 방법 (0) | 2022.05.16 |
현재 날짜와 시간을 UTC 또는 자바 GMT로 받는 방법은? (0) | 2022.05.16 |
C와 C++에서 'constant static'은 무엇을 의미하는가? (0) | 2022.05.16 |