명품 JAVA 프로그래밍
명품 JAVA 프로그래밍 8장 실습문제 11
anycoding
2021. 12. 13. 01:38
반응형
문제
words.txt 파일(출판사 홈페이지에 자료로 제공. 현재 이 문제의 정답 프로젝트에도 있음)에 한 라인에 하나의 영어 단어가 들어 있다. 이 파일을 한 라인씩 읽어 Vector<String>에 라인별로 삽입하여 저장하고, 영어 단어를 입력받아 그 단어로 시작하는 모든 단어를 벡터에서 찾아 출력하는 프로그램을 작성하라.
출력 예시
프로젝트 폴더 밑의 words.txt 파일을 읽었습니다.
단어>>lov
lov
lovebird
lovelorn
단어>>kitt
kitten
kittenish
kittle
kitty
단어>>ajlfasf
발견할 수 없음
단어>>그만
종료합니다...
소스 코드
(저는 따로 파일을 만들어 txt파일을 관리하기 때문에 경로를 설정해주지만 작업하는 파일 내에 작업하시면 따로 경로없이 txt파일만 쓰시면 됩니다. ex - FileReader("words.txt"); )
import java.io.*;
import java.util.*;
public class Main11 {
public static void main(String[] args) {
FileReader fin = null;
BufferedReader bf = null;
Vector<String> v = new Vector<String>();
Scanner s = new Scanner(System.in);
try {
fin = new FileReader("파일 경로\\words.txt");
bf = new BufferedReader(fin);
String Line = " ";
System.out.println("프로젝트 폴더 밑의 words.txt 파일을 읽었습니다...");
while((Line = bf.readLine())!=null) {
v.add(Line);
}
bf.close();
fin.close();
}catch(IOException e) {
System.out.println("입출력 오류");
}
while(true) {
int count = 0;
System.out.print("단어>>");
String word = s.next();
if(word.equals("그만")){
System.out.println("종료합니다...");
break;
}
for(int i = 0;i<v.size();i++)
{
if(word.length() <= v.get(i).length()){
if(v.get(i).substring(0, word.length()).equals(word)) {
System.out.println(v.get(i));
count++;
}
}
}
if(count == 0)
System.out.println("발견할 수 없음");
}
s.close();
}
}
생능 출판사 홈페이지의 words.txt파일입니다.
보조자료에 파일 다운 받으시면 실습문제 홀수 답지 있습니다.
https://www.booksr.co.kr/html/book/book.asp?seq=697068
명품 JAVA Programming(개정4판)
명품 자바를 사랑해주시는 많은 교수님들과 독자들께 감사드립니다. 2017년 7월에 개정3판이 나오고, 두 달도 지나지 않아 Java 9가 출시되었습니다. 그리고 급기야 올해 3월에는 Java 10이 출시되었
www.booksr.co.kr
반응형