[SCALA] 스칼라 사항 String.split는 일을하지 않습니다
SCALA스칼라 사항 String.split는 일을하지 않습니다
다음은 내 REPL 출력입니다. 사항 String.split 여기에 작동하지 않는 이유는 확실하지 않다.
val s = "Pedro|groceries|apple|1.42"
s: java.lang.String = Pedro|groceries|apple|1.42
scala> s.split("|")
res27: Array[java.lang.String] = Array("", P, e, d, r, o, |, g, r, o, c, e, r, i, e, s, |, a, p, p, l, e, |, 1, ., 4, 2)
해결법
-
==============================
1.당신이 따옴표를 사용하는 경우, 당신은 정규 표현식 분할을 요구하고 있습니다. | 당신의 정규식 아무것도 또는 아무것도 일치하지 않도록 "또는"문자이다. 그래서 모든 분할이다.
당신이 따옴표를 사용하는 경우, 당신은 정규 표현식 분할을 요구하고 있습니다. | 당신의 정규식 아무것도 또는 아무것도 일치하지 않도록 "또는"문자이다. 그래서 모든 분할이다.
당신이 분할 ( '|')를 사용하는 경우 또는 분할 ( "", "\ |" "") 당신은 당신이 원하는 것을 얻을 수 있습니다.
-
==============================
2.| 또는 작업을위한 논리 연산자로 사용되는 특수 정규 표현식 문자입니다.
| 또는 작업을위한 논리 연산자로 사용되는 특수 정규 표현식 문자입니다.
java.lang.String의 번호 분할 (문자열 정규식) 이후; 넌 분할, 정규 표현식에서 누구도 본질적으로 "모든 단일 문자 사이의"의미 정규 표현식 분할에 대한 또 다른 명물 전체이다 "없음 또는 없음"을 가진 문자열을 사용합니다.
당신이 원하는 것을 얻으려면, 당신은 제대로 정규식 패턴을 탈출해야합니다. 패턴을 탈출하려면 \로 문자를 씁니다과 \ 특수 문자열 문자이기 때문에 (생각 \ t 예를 들어 및 \ R), 당신은 당신이 (s.split하게 될 겁니다 너무 실제로 두 탈출에 필요 "\\ |").
전체 자바 정규 표현식 구문에 대해서는 있으며, java.util.regex.Pattern의 javadoc을 참조하십시오.
-
==============================
3.전화가 "빈 문자열 또는 빈 문자열"로 해석되도록 분할, 첫 번째 인수로 정규식 걸립니다. 예상되는 동작을 얻으려면 파이프 문자 "\\ |"탈출해야합니다.
전화가 "빈 문자열 또는 빈 문자열"로 해석되도록 분할, 첫 번째 인수로 정규식 걸립니다. 예상되는 동작을 얻으려면 파이프 문자 "\\ |"탈출해야합니다.
from https://stackoverflow.com/questions/11284771/scala-string-split-does-not-work by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 어떻게 실패에도 불구하고 미래의 순서를 실행을 계속합니다? (0) | 2019.11.28 |
---|---|
[SCALA] 어떻게 스칼라의 연속성을 사용할 수 있습니까? (0) | 2019.11.28 |
[SCALA] 어떻게 튜플의 목록에서 최대 찾는 방법은? (0) | 2019.11.28 |
[SCALA] 스칼라에서 어떻게 목록을 접어 중간 결과를 반환합니까? (0) | 2019.11.28 |
[SCALA] 파일 이름이 너무 오래 SBT (0) | 2019.11.28 |