아래 줄은 내 문자열을 (.
), (,
), (:
) 및 줄 바꿈 문자 (\n
)로 나눕니다.하이픈 문자로 분할 문자열 too
String[] textPhrases = text.split("[.,:\\n]");
하지만이 작동하지 않습니다
I가 없거나 잘못을하고있는 중이 야 무엇String[] textPhrases = text.split("[.,:/-/\\n]");
? 고맙습니다.
아래 줄은 내 문자열을 (.
), (,
), (:
) 및 줄 바꿈 문자 (\n
)로 나눕니다.하이픈 문자로 분할 문자열 too
String[] textPhrases = text.split("[.,:\\n]");
하지만이 작동하지 않습니다
I가 없거나 잘못을하고있는 중이 야 무엇String[] textPhrases = text.split("[.,:/-/\\n]");
? 고맙습니다.
이것은 정규식입니다. 하이픈은 문자 클래스 내에서 특별한 의미가 있습니다.
[-.,:\n]
내가 너무 하이픈 문자 분할해야하지만이 작동하지 않습니다 ... 나는 무엇을 놓치고 : 당신은 클래스의 첫 또는 마지막 항목으로 하이픈을 배치해야 또는 잘못하고 있습니까?
이 그림에서 잘못된 점을 먼저 확인하려면 하이픈 주위에 문자 클래스 안에 슬래시가 있어야합니다. 대신 당신은 문자 클래스 []
내에서 이스케이프 시퀀스 문자 (\\
)
[.,:/-/\\n]
^^^ Remove these and replace with the escape sequence character (\\-)
를 사용해야합니다, 당신은 첫 또는 마지막 문자로 하이픈 (-
)를 배치 할 수 있습니다. 일치 시키려면 하이픈을 추가하려면이 문자를 ([.,:\\-\n]
) 이스케이프 처리 할 수도 있습니다.
String s = "hey,hi.foo:bar\nbaz-quz";
String[] parts = s.split("[.,:\n-]");
System.out.println(Arrays.toString(parts));
출력
[hey, hi, foo, bar, baz, quz]
당신은 사용해야합니다 :
String[] textPhrases = text.split("[.,:\\-\\n]");
일반적으로, 하나는 하이픈 탈출 할 수 있습니다'[을 :./\ -/\ n]'. 그러나 이는 구현에 따라 정의 될 수 있습니다. – usr2564301
@Jongware 왜 탈출해야 할 때? 그냥 혼란을 더합니다. –
어디에서나 하이픈을 삽입하려면 "해야합니다": Yours는 완벽하게 유효한 솔루션이지만 하이픈이 삽입되는 곳은주의해야합니다. 이스케이프 처리하면 어디서나 배치 할 수 있습니다. – usr2564301