나는 스칼라에서 큰 텍스트 파일을 읽을 필요가있다. 그리고 그 파일에 한 줄을 StringBuilder
에 추가하십시오. 하지만 그 파일의 줄에 문자열이 포함되어 있으면 루프를 중단해야합니다. 그리고 StringBuilder에 그 String을 추가하고 싶지 않습니다. 예를 들어, java에서 루프 A
은 결과 문자열에 "pengkor"
을 포함합니다. 루프 B
에는 해당 문자열이 포함되어 있지 않지만 루프에는 break
문이 있으며 scala에서는 사용할 수 없습니다. 루프 C에서 나는 for
문을 사용했지만, 동작은 매우 다르며 for
은 스칼라로 반복됩니다. 내 주요 관심사는 StringBuilder에 "pengkor"
문자열을 포함하지 않고 파일의 크기 때문에 스칼라 목록에 파일의 모든 내용 (스칼라 또는 기타 목록 작업의 목록 이해 목적으로)을로드하지 않는 것입니다.파일을 읽는 동안 스칼라에서 루프를 끊는 방법은 무엇입니까?
public class TestDoWhile {
public static void main(String[] args) {
String s[] = {"makin", "manyun", "mama", "mabuk", "pengkor", "subtitle"};
String m = "";
StringBuilder builder = new StringBuilder();
// loop A
int a = 0;
while (!m.equals("pengkor")) {
m = s[a];
builder.append(m);
a++;
}
System.out.println(builder.toString());
// loop B
a = 0;
builder = new StringBuilder();
while (a < s.length) {
m = s[a];
if (!m.equals("pengkor")) {
builder.append(m);
} else {
break;
}
a++;
}
System.out.println(builder.toString());
// loop C
builder = new StringBuilder();
a = 0;
for (m = ""; !m.equals("pengkor"); m = s[a], a++) {
builder.append(m);
}
System.out.println(builder.toString());
}
}
3) 첫 번째 방법과 매우 흡사 한 재귀 사용 –