반응형
파이프 문자로 문자열 분리 (“|”)
이 질문에는 이미 답변이 있습니다.
이 문자열에서 값을 나눌 수 없습니다.
"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("\\|");
Pattern.quote () 사용
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.Pattern)
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 ]
또는 .. Pattern#quote
:
String[] value_split = rat_values.split(Pattern.quote("|"));
This is happening because String#split
accepts a regex:
|
has a special meaning in regex.
quote
will return a String representation for the regex.
split takes regex as a parameter.|
has special meaning in regex.. use \\|
instead of |
to escape it.
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
반응형
'IT story' 카테고리의 다른 글
C #에서 문자열에 줄 바꿈 추가 (0) | 2020.04.30 |
---|---|
Vim에서 대괄호 (또는 따옴표 또는 ...)를 선택하는 방법은 무엇입니까? (0) | 2020.04.30 |
요소에 특정 클래스가 없는지 확인하는 방법은 무엇입니까? (0) | 2020.04.30 |
Angular 2의 URL에서 쿼리 매개 변수를 얻는 방법은 무엇입니까? (0) | 2020.04.30 |
SQL Server에서 올바른 트랜잭션 사용 (0) | 2020.04.30 |