728x90
★ 예제 1)
- 요구사항 : 특정 이름을 찾아 다른 이름으로 변환 후 파일을 다른 이름으로 저장하시오.
- 조건
- '유재석' -> 메뚜기
- 저장할 파일명 : 이름수정_변환.dat
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Q0120 {
public static void main(String[] args) {
//m1();
m2();
}
private static void m2() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Downloads/파일_입출력_문제/이름수정_변환.dat"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void m1() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/이름수정.dat"));
BufferedWriter writer = new BufferedWriter(new FileWriter("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/이름수정_변환.dat"));
String line = null;
int lineNumber = 0;
while ((line = reader.readLine()) != null) {
line = line.replace("유재석", "메뚜기");
writer.write(line);
}
reader.close();
writer.close();
System.out.println("완료");
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
★ 예제 2)
- 요구사항 : 숫자를 한글로 바꾼 뒤 파일을 다른 이름으로 저장하시오.
- 조건
- 0 → 영, 1 → 일 ... 9 → 구
- 저장할 파일명: 숫자_변환.dat
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Q0121 {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/숫자.dat"));
BufferedWriter writer = new BufferedWriter(new FileWriter("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/숫자_변환.dat"));
String line = null;
while ((line = reader.readLine()) != null) {
line = line.replace("0", "영");
line = line.replace("1", "일");
line = line.replace("2", "이");
line = line.replace("3", "삼");
line = line.replace("4", "사");
line = line.replace("5", "오");
line = line.replace("6", "육");
line = line.replace("7", "칠");
line = line.replace("8", "팔");
line = line.replace("9", "구");
writer.write(line);
}
reader.close();
writer.close();
System.out.println("완료");
} catch (Exception e) {
e.printStackTrace();
}
m2();
}
private static void m2() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/숫자_변환.dat"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
★ 예제 3)
- 요구사항 : 성적을 확인 후 합격자/불합격자 명단을 출력하시오.
- 조건
- 합격 조건: 3과목 평균 60점 이상
- 과락 조건: 1과목 40점 미만
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.FileReader;
public class Q0122 {
public static void main(String[] args) {
// TODO Auto-generated method stub
m1();
}
private static void m1() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/성적.dat"));
String line = null;
String pass = "[합격자]\n";
String nopass = "[불합격자]\n";
while ((line = reader.readLine()) != null) {
String [] list = line.split(",");
int kor = Integer.parseInt(list[1]);
int eng = Integer.parseInt(list[2]);
int math = Integer.parseInt(list[3]);
int avg = (kor+eng+math)/3;
if(kor>=40&&eng>=40&&math>=40&&avg>=60) {
pass += String.format("%s\n", list[0]);
}else {
nopass += String.format("%s\n", list[0]);
}
}
reader.close();
System.out.println(pass);
System.out.println(nopass);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
★ 예제 4)
- 요구사항 : 이름을 입력받아 회원 정보를 검색 후 출력하시오.
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;
public class Q0123 {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/단일검색.dat"));
String line = null;
Scanner scan = new Scanner(System.in);
System.out.print("이름 : ");
String name = scan.nextLine();
while ((line = reader.readLine()) != null) {
String [] list = line.split(",");
String number = list[0];
String address = list[2];
String call = list[3];
if(list[1].equals(name)) {
System.out.printf("[%s]\n", list[1]);
System.out.printf("번호 : %s\n", list[0]);
System.out.printf("주소 : %s\n", list[2]);
System.out.printf("전화 : %s\n", list[3]);
break;
}
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
★ 예제 5)
- 요구사항 : 이름을 입력받아 회원 주문 정보를 검색 후 출력하시오.
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;
public class Q0124 {
public static void main(String[] args) {
// TODO Auto-generated method stub
m1();
}
private static void m1() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/검색_회원.dat"));
BufferedReader reader2 = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/검색_주문.dat"));
String line = null;
String line2 = null;
Scanner scan = new Scanner(System.in);
System.out.print("이름 : ");
String name = scan.nextLine();
String num = "";
String address = "";
String result = String.format("==== 구매 내역 ====\n"
+ "[번호]\t[이름]\t[상품명]\t[개수]\t[배송지]\n");
while ((line = reader.readLine()) != null) {
String list [] = line.split(",");
if(list[1].equals(name)) {
num = list[0];
address = list[2];
break;
}
}
if (!num.equals("")) {
System.out.print(result);
while ((line2 = reader2.readLine()) != null) {
String list2 [] = line2.split(",");
if(list2[3].equals(num)) {
System.out.printf("%s\t%s\t%s\t%s\t%s\r\n"
, list2[0]
, name
, list2[1]
, list2[2]
, address);
}
}
}
reader.close();
reader2.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
★ 예제 6)
- 요구사항 : 모든 괄호가 서로 짝이 맞는지 검사하시오.
- 조건
- 대상 괄호 : (), {}
- Stack 사용
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Stack;
public class Q0125 {
public static void main(String[] args) {
// TODO Auto-generated method stub
m1();
}
private static void m1() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/자바소스.java"));
Stack<Character> stack = new Stack<Character>();
String line = null;
String Text = "";
while ((line = reader.readLine()) != null) {
Text += line + "\r\n";
}
reader.close();
for(int i=0; i<Text.length(); i++) {
char c = Text.charAt(i);
if(c == '(' || c == '{') {
stack.push(c);
}else if(c == ')' || c == '}') {
stack.pop();
}
}
if(stack.size()==0) {
System.out.println("올바른 소스 입니다.");
}else {
System.out.println("올바르지 않은 소스 입니다.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 실행결과
예제 7) 직원들의 지각과 조퇴를 카운트하시오.
- 조건
- 출근 : 오전 9시
- 퇴근 : 오후 6시
- 소스코드
package com.test.question;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
public class Q0126 {
public static void main(String[] args) {
m1();
}
private static void m1() {
try {
BufferedReader reader = new BufferedReader(new FileReader("/Users/kimdaehwan/Desktop/Quest/파일_입출력_문제/출결.dat"));
ArrayList<Employee> list = new ArrayList<Employee>();
String line = null;
String name = "";
while ((line = reader.readLine()) != null) {
String [] temp = line.split(",");
Employee e = getEmployee(list, temp[1]);
if(e==null) {
e = new Employee(temp[1], 0, 0);
list.add(e);
}
if(temp[2].compareTo("9:00")>0) {
e.in++;
}
if(temp[3].compareTo("18:00")<0) {
e.out++;
}
}
System.out.println("[이름]\t[지각]\t[조퇴]");
for(Employee e : list) {
System.out.printf("%s\t%2d회\t%3d회\n"
, e.name
, e.in
, e.out);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static Employee getEmployee(ArrayList<Employee> list, String name) {
for(Employee e : list) {
if(e.name.equals(name)) {
return e;
}
}
return null;
}
}
class Employee {
public String name;
public int in;
public int out;
public Employee(String name, int in, int out) {
this.name = name;
this.in = in;
this.out = out;
}
@Override
public String toString() {
return "[name=" + name + ", in=" + in + ", out=" + out + "]";
}
}
- 실행결과
728x90
'자바' 카테고리의 다른 글
JAVA STEP 46. lambda (0) | 2023.02.28 |
---|---|
JAVA STEP 45. LinkedList (0) | 2023.02.28 |
JAVA STEP 43. File 입출력 (0) | 2023.02.27 |
JAVA STEP 42. 재귀 메소드 (0) | 2023.02.27 |
JAVA STEP 41. File/Directory 조작 예제 (0) | 2023.02.24 |