Java의 split() 메서드는 닷()에서는 동작하지 않습니다.
웹 어플리케이션에서 잘못된 부분을 분리하기 위해 간단한 코드 스니펫을 준비했습니다.
public class Main {
public static void main(String[] args) throws IOException {
System.out.print("\nEnter a string:->");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String temp = br.readLine();
String words[] = temp.split(".");
for (int i = 0; i < words.length; i++) {
System.out.println(words[i] + "\n");
}
}
}
웹 어플리케이션 JSF를 구축하면서 테스트를 해봤습니다.나는 단지 위의 코드에 있는 이유를 알고 싶다.temp.split(".")
동작하지 않습니다.성명서는,
System.out.println(words[i]+"\n");
콘솔에는 아무것도 표시되지 않습니다.루프를 통과하지 않는 것을 의미합니다.의 인수를 변경할 때temp.split()
다른 캐릭터에게 메서드를 적용하면 평소처럼 잘 작동합니다.뭐가 문제죠?
java.lang.String.split
정규 표현으로 분할합니다..
정규 표현에서 "임의의 문자"를 의미합니다.
해라temp.split("\\.")
.
의 문서에는 다음과 같이 기재되어 있습니다.
(내 것을 강조합니다.)
점은 정규 표현 구문의 특수 문자입니다.스플릿을 리터럴 문자열 패턴으로 할 경우 split() 파라미터로 사용합니다.
String[] words = temp.split(Pattern.quote("."));
시험:
String words[]=temp.split("\\.");
방법은 다음과 같습니다.
String[] split(String regex)
"."는 regex의 예약된 문자입니다.
메서드는 문자열이 아닌 정규 표현을 사용하며 점은 정규 표현에서 특별한 의미를 가집니다.그렇게 도망쳐라split("\\.")
이중 백슬래시가 필요하고, 두 번째 백슬래시가 첫 번째 백슬래시를 탈출합니다.
\\.
답은 간단합니다.여기 간단한 코드가 있습니다.
while (line != null) {
//
String[] words = line.split("\\.");
wr = "";
mean = "";
if (words.length > 2) {
wr = words[0] + words[1];
mean = words[2];
} else {
wr = words[0];
mean = words[1];
}
}
private String temp = "mahesh.hiren.darshan";
String s_temp[] = temp.split("[.]");
Log.e("1", ""+s_temp[0]);
잘 되고 있어요.당신은 그 문서를 읽었습니까?문자열은 정규 표현으로 변환됩니다.
.
는 모든 입력 문자와 일치하는 특수 문자입니다.
여느 정규 표현 특수 문자와 마찬가지로, 당신은 탈옥과 함께\
추가 정보가 필요합니다.\
Java 문자열 이스케이프용입니다.
언급URL : https://stackoverflow.com/questions/7935858/the-split-method-in-java-does-not-work-on-a-dot
'IT' 카테고리의 다른 글
문자열의 첫 번째 문자가 숫자인지 확인하려면 어떻게 해야 하나요? (0) | 2022.11.08 |
---|---|
JPA 빠른 가져오기가 가입되지 않음 (0) | 2022.11.08 |
코드 실행 속도: ASP.NET-MVC 대 PHP (0) | 2022.11.08 |
jooq TIMESTAMP(6) 지원 (0) | 2022.11.08 |
다른 Python 파일을 Import하려면 어떻게 해야 하나요? (0) | 2022.11.08 |