-2
기본적으로 대화를 포함하는이 문자열이 있는데, 나는 Pattern 클래스로 1 인의 텍스트를 "필터링"하고 싶습니다.Pattern과 Matcher 클래스를 사용하여 Java로 대화를 분할하는 방법은 무엇입니까?
대화는 다음과 같습니다 : 나는 다른 문자열/다른 배열에있는 모든 다른 줄을 추가하려고
Jack: Hi
John: Hello
Jack: How are you?
John: I'm cool, how 'bout you?
Jack: I'm cool too.
. 나는 모든 발견 된 패턴은 하나의 다른에 넣고 싶은, 그러나, 나는이 원하지 않는
String someteststring = "Jack: HiJack: How are you?Jack: I'm cool too."
:에
private String getFrom(String in, String type) {
String patr = "", Return = "";
if (type == "title") {
patr = "Jack:";
}
Pattern patr = Pattern.compile(patr);
Matcher matcher = pattern.matcher(in);
while (matcher.find()) {
Return = main.substring(matcher.start(), matcher.end());
}
if (type == "title") {
Return = Return.substring(0, Return.length());
}
return Return;
}
코드 결과 :
그래서 나는이 방법을 썼다 문자열은 다음과 같습니다.someteststring[0] = "Jack: Hi"
someteststring[1] = "Jack: How are you?"
someteststring[2] = "Jack: I'm cool too."
이 설명이 도움이 되었으면 좋겠습니까?
Java에서 객체의 내용을 비교하기 위해'=='를 사용하지 마십시오. 'String.equals()'를 사용해야합니다. 또한 변수 이름은 대문자로 시작하면 안됩니다. 또한 다른 것들에 대해 같은 변수 이름을 다시 사용하려고 시도하는 것 같습니다.이 코드는 컴파일되지 않습니다. –
당신은 아마도'if ("title".equals (type))'을 의미 할 것이고'=='는 의미하지 않을 것입니다. –
@Guillaume - 물론 모든 문자열 리터럴 *인데 인턴이 될 경우. 'String' 객체 중 하나가'StringBuilder'에서 나온다면 어떻게 될까요? 명시 적으로 참조 값이나 primatives를 비교하려고하지 않는 한 결코'=='를 사용해서는 안됩니다. –