누군가 이것이 왜 infinte 루프인지 알 수 있습니까? 당신이 당신의 body
문자열을 변경하지 않기 때문에indexof를 사용하여 문자열의 패턴 찾기
private void splitBody() {
bodyparts=new Vector();
String body = "<br />testtestest<br />fefefefefefefefefef<br />qqqqqqqqqqqq";
int previousIndex=0;
while(body.indexOf("<br />",previousIndex)!=-1) {
int index=body.indexOf("<br />",previousIndex);
System.out.println(body.substring(previousIndex, index));
bodyparts.addElement(body.substring(previousIndex, index));
previousIndex=index;
}
}
내가 선택한 대답이 더 나은 해결책이라고 생각하기 때문에. previousIndex를 1 씩 늘리면, 찾고있는 패턴은 6 자의 characaters이므로 6이 더 좋습니다. 따라서 솔루션 권고와 같은 다음 5자를 확인할 필요가 없습니다. 이게 무슨 뜻입니까? – Vincent
실제로는 아닙니다. 하나를 증가시킴으로써, 당신이 찾고있는 패턴은 문자열의 시작 부분에서 발견되지 않을 것입니다. 따라서 당신은 문제가 해결 될 것입니다. 간단히 말하면 검색은 "br />"에서 시작하며 "
"을 찾고 있으므로 다음 번에 "
"이 나올 때까지 찾으실 수 없습니다. 선택한 솔루션이 반복 할 때마다 패턴의 크기를 불필요하게 계산합니다. – aligf
네, 다시 발생을 발견하지 못 하겠지만, 여전히 "br />"을 체크합니다. 단지 6을 더하면, 보지 않고 시작합니다. 하지만 실제로 저는 두 가지 대답을 모두 골랐습니다. 왜냐하면 당신은 더 빨리 nr을 더하기 때문에 BR의 크기를 계산하기 때문에 당신이 말했듯이 & 그의 것 때문에 1 대신에 6을 더하는 것이 조금 빠릅니다. – Vincent