"+, -, *, /, ="기호를 따라갈 때 문자열을 분할하려고합니다. split 함수를 사용하고 있지만이 함수는 하나의 인수 만 취할 수 있습니다 또한 "+"에서 작동하지 않습니다. 다음 코드를 사용하고 있습니다. -하나 이상의 심볼에서 java로 문자열 분할하기
Stringname.split("Symbol");
감사합니다.
"+, -, *, /, ="기호를 따라갈 때 문자열을 분할하려고합니다. split 함수를 사용하고 있지만이 함수는 하나의 인수 만 취할 수 있습니다 또한 "+"에서 작동하지 않습니다. 다음 코드를 사용하고 있습니다. -하나 이상의 심볼에서 java로 문자열 분할하기
Stringname.split("Symbol");
감사합니다.
String.split
는 인수로 정규 표현식을합니다.
즉, String
을 분리하기 위해 하나의 매개 변수에서 기호 나 텍스트 추상화를 변경할 수 있습니다.
here 문서를 참조하십시오.
여기에 귀하의 경우 예입니다 :
String toSplit = "a+b-c*d/e=f";
String[] splitted = toSplit.split("[-+*/=]");
for (String split: splitted) {
System.out.println(split);
}
출력 :
a
b
c
d
e
f
주 : Pattern
들에 대한
\\
으로해야합니다. 편집 : 여기서는 필요 없습니다.[]
)는 문자 클래스를 나타냅니다.Pattern
s에 대한 추가 정보.정규 표현식이 필요합니다. Addionaly 당신은 정규식 OR
연산자를 필요
String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
당신은 정규 표현식을 사용할 수 있습니다
String[] tokens = input.split("[+*/=-]");
참고 : -
가이 범위 구분 기호로 간주되지 않습니다 확인하기 위해 첫 번째 또는 마지막 위치에 배치해야합니다.
이를 위해 적절한 정규식 문을 사용해야합니다. 목록에있는 대부분의 기호는 정규 표현식에 예약되어 있으므로 \
으로 이스케이프 처리해야합니다.
매우 기본적인 표현은 \+|\-|\\|\*|\=
입니다. 상대적으로 이해하기 쉽고 원하는 각 기호는 \
으로 이스케이프되며 각 기호는 |
(또는) 기호로 구분됩니다. 예를 들어 ^
을 추가하려는 경우 해당 문구에 |\^
을 추가하면됩니다.
테스트 및 빠른 표현을 위해 www.regexpal.com을 사용하고 싶습니다.
javadoc을 처음 읽으셨습니까? '+'로 나뉘어서 왜 당신이 원하는 것을 얻지 못하는지에 대한 설명이 있어야합니다. –
어쩌면보십시오 : http://stackoverflow.com/questions/7492672/java-string-split-by-multiple-character-delimiter – kadrian