1 팁
1.
2 복습
1.
스킵
3 이론
1. String 클래스의 생성자와 메서드 1
2. String 클래스의 생성자와 메서드 2
4 실습
1. 파일 및 폴더 생성
package j0526;
import java.io.File;
public class C0526_02 {
public static void main(String[] args) {
File dir = new File("c:/bbb");
dir.mkdirs(); // 폴더생성 메소드
System.out.println("폴더를 생성합니다.");
File f = new File("c:/bbb/test.txt");
try {
f.createNewFile(); // 파일생성 메소드
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println("파일을 생성합니다.");
}
}
2. 파일에 문자 적기
package j0526;
import java.io.File;
import java.io.FileWriter;
public class C0526_02 {
public static void main(String[] args) {
// File dir = new File("c:/bbb");
// dir.mkdirs(); // 폴더생성 메소드
// System.out.println("폴더를 생성합니다.");
// File f = new File("c:/bbb/test.txt");
// try {
// f.createNewFile(); // 파일생성 메소드
// } catch (Exception e) {
// // TODO: handle exception
// e.printStackTrace();
// }
// System.out.println("파일을 생성합니다.");
// 파일에 문자열 쓰기
FileWriter fw = null;
String str = "";
try {
fw = new FileWriter("c:/bbb/test.txt");
for (int i = 0; i < 10; i++) {
str = str + "글자를 저장합니다. \r \n";
fw.write(str); // 글자 저장 메소드
// fw.flush(); //버퍼에 있는 모든것을 저장
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
;
} finally {
try { // 파일 닫는 작업에서 예외처리를 하기 위해 (저장 안정성)
fw.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
System.out.println("글자가 저장되었습니다.");
}
}
3. 파일에 배열 적용해 문자 쓰기
package j0526;
import java.io.FileWriter;
import java.io.IOException;
public class C0526_03 {
public static void main(String[] args) throws IOException {
FileWriter fw = null; // 문자를 저장할 수 있는 객체 생성
fw = new FileWriter("c:/stu.txt");
String[] name = { "홍길동", "유관순", "이순신", "강감찬", "김구" };
String str = "";
for (int i = 0; i < 5; i++) {
str = str + (1001 + i) + "," + name[i] + ",100,100,99 \r \n ";
}
fw.write(str);
fw.flush();
fw.close();
System.out.println("파일이 저장되었습니다.");
}
}
4. Person 클래스 사용하여 주소 비교 및 복사 방법의 형태
//Person 클래스 사용하여 주소 비교
package j0526;
public class C0526_04 {
public static void main(String[] args) {
Person p1 = new Person(880101111111L);
Person p2 = new Person(880102111111L);
Person p3 = new Person(880101111111L);
Person p4 = new Person(p1); // 공간분리,깊은복사
Person p5 = p3; // 주소복사, 얕은복사
System.out.println(p4.id);
System.out.println(p1);
System.out.println(p3);
if (p1.equals(p3)) {
System.out.println("같음");
} else {
System.out.println("다름");
}
}
}
package j0526;
public class Person {
long id; // 주민번호 8801011111111 13자리
Person() {
}
Person(long id) {
this.id = id;
}
Person(Person p) {
this.id = p.id;
}
public boolean equals(Object obj) {
Person p = (Person) obj;
boolean chk = false;
if (id == (p.id)) {
chk = true;
}
return chk;
}
// public String toString() {
// String str = "주민번호 : "+id;
// return str;
// }
}
5. 비교 후 해시코드 출력
package j0526;
public class C0526_05 {
public static void main(String[] args) {
// 비교할 두 개의 문자열
String str1 = "곽상도 전 국민의힘 의원의 '50억 수수 의혹'을 수사하고 있는 검찰이 하나금융지주를 압수수색했습니다.\r\n"
+ "서울중앙지검 반부패수사3부(부장검사 강백신)는 오늘(26일) 오전부터 하나금융지주와 하나은행 금융투자센터 사무실 등에 대해 압수수색을 진행하고 있습니다.\r\n"
+ "곽상도 전 의원의 뇌물 혐의에 대한 1심 무죄 판결 뒤 검찰이 하나은행을 압수수색하는 건 오늘이 처음입니다.\r\n"
+ "검찰은 하나은행 등에서, 대장동 사업 컨소시엄 구성과 관련한 자료를 확보하는 것으로 전해졌습니다.\r\n"
+ "검찰은 대장동 개발 사업 공모가 있었던 2015년, 산업은행 컨소시엄에 참여한 호반건설이 하나은행에 성남의뜰 컨소시엄 이탈을 제안하자, 화천대유 대주주 김만배 씨 부탁을 받은 곽 전 의원이 하나은행에 영향력을 행사해 이를 막아준 것으로 의심하고 있습니다.\r\n"
+ "곽 전 의원은 이 과정에서 그 대가로 아들 병채 씨의 퇴직금 명목으로 50억 원을 받은 혐의를 받고 있습니다.\r\n"
+ "지난해 검찰은 뇌물과 알선수재 혐의로 곽 전 의원을 재판에 넘겼지만, 1심 재판부는 곽 전 의원의 뇌물 혐의에 대해 '하나은행의 이탈 위기가 존재했다고 단정하기 어렵고 곽 전 의원이 실제로 하나금융지주에 영향력을 행사했다고 보기 어렵다'며 지난 2월 무죄를 선고했습니다.\r\n"
+ "검찰은 이 같은 판결에 항소한 뒤 보강 수사를 진행해 왔습니다.";
String str2 = "곽상도 전 국민의힘 의원의 '50억 수수 의혹'을 수사하고 있는 검찰이 하나금융지주를 압수수색했습니다.\r\n"
+ "서울중앙지검 반부패수사3부(부장검사 강백신)는 오늘(26일) 오전부터 하나금융지주와 하나은행 금융투자센터 사무실 등에 대해 압수수색을 진행하고 있습니다.\r\n"
+ "곽상도 전 의원의 뇌물 혐의에 대한 1심 무죄 판결 뒤 검찰이 하나은행을 압수수색하는 건 오늘이 처음입니다.\r\n"
+ "검찰은 하나은행 등에서 대장동 사업 컨소시엄 구성과 관련한 자료를 확보하는 것으로 전해졌습니다.\r\n"
+ "검찰은 대장동 개발 사업 공모가 있었던 2015년, 산업은행 컨소시엄에 참여한 호반건설이 하나은행에 성남의뜰 컨소시엄 이탈을 제안하자, 화천대유 대주주 김만배 씨 부탁을 받은 곽 전 의원이 하나은행에 영향력을 행사해 이를 막아준 것으로 의심하고 있습니다.\r\n"
+ "곽 전 의원은 이 과정에서 그 대가로 아들 병채 씨의 퇴직금 명목으로 50억 원을 받은 혐의를 받고 있습니다.\r\n"
+ "지난해 검찰은 뇌물과 알선수재 혐의로 곽 전 의원을 재판에 넘겼지만, 1심 재판부는 곽 전 의원의 뇌물 혐의에 대해 '하나은행의 이탈 위기가 존재했다고 단정하기 어렵고, 곽 전 의원이 실제로 하나금융지주에 영향력을 행사했다고 보기 어렵다'며 지난 2월 무죄를 선고했습니다.\r\n"
+ "검찰은 이 같은 판결에 항소한 뒤 보강 수사를 진행해 왔습니다.";
// 두 문자열을 비교하여 동일한지 확인
if (str1.equals(str2)) {
System.out.println("같음");
} else {
System.out.println("다름");
}
// 각 문자열의 해시코드 출력
System.out.println("hashCode str1 : " + str1.hashCode());
System.out.println("hashcode str2 : " + str2.hashCode());
}
}
6. 문자와 숫자를 각각 0~10까지 더하는 것의 합
// 문자와 숫자를 각각 0~10까지 더하는 것의 합
package j0526;
public class C0526_06 {
public static void main(String[] args) {
int sum = 0;
String str = "";
for (int i = 0; i <= 10; i++) {
sum += i;
str += i + " ";
}
System.out.println(sum);
System.out.println(str);
}
}
7. 문자 찾기
// 문자 찾기
package j0526;
import java.util.Scanner;
public class C0526_07 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("찾고자 하는 문자를 입력하세요.");
String search = scan.next();
String str1 = "홍길동 홍길순 홍길자 이순신 강감찬 유관순 김구 김유신";
String str2 = "https://semiconductor.samsung.com/kr/dram/ddr.jsp";
String str3 = "https://semiconductor.samsung.com/kr/foundry/process-technology.jsp";
if (str2.endsWith(search)) {
System.out.println("jsp로 끝납니다.");
} else
System.out.println("jsp로 끝나지 않습니다.");
// contains() - 문자얄 내에 문자가 있는지 확인
if (str1.contains(search)) {
System.out.println(search + "(이)라는 글자가 있습니다.");
} else
System.out.println(search + "(이)라는 글자가 없습니다.");
}
}
8. 찾는 문자 반복 (없으면 종료)
// 찾는 문자 반복 (없으면 종료)
package j0526;
import java.util.Scanner;
public class C0526_08 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = "안녕하세요. 반갑습니다. 좋은 하루 되세요. 오늘 불금요 완전 좋음요";
int count = 0, searchNum = -1; // 찾는 문자 개수, 찾는 문자 위치
System.out.println("찾고자 하는 문자를 입력하세요");
// 교수님이 짠거
while (true) {
String search = scan.next();
searchNum = str.indexOf(search, searchNum + 1); // 찾는 위치 메소드
if (searchNum != -1) {
System.out.println("찾는 문자 위치 : " + searchNum);
count++;
} else {
System.out.println("더 이상 찾는 문자가 없습니다.");
break;
}
}
System.out.println("=====================");
System.out.println("찾은 문자 개수 : " + count);
System.out.println("종료합니다.");
// 내가 짠거
// while (true) {
// String search = scan.next();
// int index = str.indexOf(search, 0);
// if (str.indexOf(search, 0) == -1) {
// System.out.println("찾는 문자가 없습니다. 종료합니다 ");
// break;
// } else {
// System.out.println("찾는 문자: " + search);
// System.out.println("첫 번째로 나타나는 위치 : " + index);
// count++;
// }
// } // while
}// main
}// clas
9. 문자 전처리 방법
// 문자 전처리 방법
package j0526;
public class C0526_09 {
public static void main(String[] args) {
String str = " aaa aaa aaa ";
String str2 = " bbb, bbb, bbb, ";
System.out.println("현재 str : " + str);
System.out.println("--------------------");
String result = str.trim(); // 앞쪽뒤쪽 공백 제거
String result2 = str2.replace("bbb", "abc"); // 앞쪽뒤쪽 공백 제거
String result3 = str2.replace(",", " "); // 앞쪽뒤쪽 공백 제거
String result4 = str.replace(" ", ""); // 앞쪽뒤쪽 공백 제거
System.out.println("공백제거 str : " + result);
System.out.println("문자변경 str2 : " + result2);
System.out.println("쉼표변경 str2 : " + result3);
System.out.println("공백전부제거(변경) str : " + result4);
// str을 앞뒤 공백,사이공백을 모두제거하여 출력하시오.
}
}
10. 학번 정보 출력
package Stuproject;
import java.util.Scanner;
public class C0526_10 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String data1 = "1001,홍길동,100,100,99";
String info3 = "";
// 배열로 담아 출력하시오
String[] result = data1.split(",");
// String 문자열을 int로 변환
int stuNo = Integer.parseInt(result[0]);
int kor = Integer.parseInt(result[2]);
int eng = Integer.parseInt(result[3]);
int math = Integer.parseInt(result[4]);
// Double.parseInt(resul[2]);
// Long.parseInt(resul[3]);
String name = result[1];
Student s = new Student(stuNo, name, kor, eng, math);
// total,avg 출력
System.out.println(s.getTotal());
System.out.println(s.getAvg());
String[] chk_info = new String[3];
chk_info[0] = "HTML";
// chk_info[1] = "CSS";
// chk_info[2] = "webDesign";
for (int i = 0; i < chk_info.length; i++) {
if (i == 0)
info3 = "," + info3 + "," + chk_info[i];
else
info3 = info3 + "," + chk_info[i];
}
System.out.println(info3);
// String info1 = ""+chk_info[0]+","+chk_info[1]+","+chk_info[2]; <-에러가 나옴
// String info2 = "HTML,CSS,webDesign";
// 내가 만지작한거
// while (true) {
// System.out.println("출력할 것들 ");
// System.out.println("-------------------");
// System.out.println(data1);
// System.out.println("찾고자 하는 문자를 입력하세요");
// String search = scan.next();
// if (isNumeric(search)) {
// int stuNo = Integer.parseInt(search);
// // 숫자로 검색한 경우의 동작을 여기에 작성
// } else {
// // 문자열로 검색한 경우의 동작을 여기에 작성
// // 예: 이름이 일치하는 학생 정보를 출력하는 등의 작업 수행
// }
// } // while
// }
// private static boolean isNumeric(String search) {
// return false;
// }
}
}
5 문제풀이
1.
6 단축키
1.
* 핵심
- 파일 생성 및 반복문 학습하기
* 0523 실습 링크
728x90
반응형
LIST
'배운 책들 정리 > 자바 완전 정복' 카테고리의 다른 글
자바의 정석 9,11,12 정리 - java.lang 패키지(Stringbuffer 클래스) , 컬렉션 프레임 워크, 쓰레드 (0) | 2023.05.30 |
---|---|
자바의 정석 9,11,12 - java.lang 패키지(Stringbuffer 클래스) , 컬렉션 프레임 워크, 쓰레드 (0) | 2023.05.30 |
자바의 정석 7,8 - 객체지향개념 (다형성,추상화,인터페이스), 예외 처리 (0) | 2023.05.25 |
자바의 정석 7-2 - 객체지향개념 2 (다형성,Arrraylist,제네릭,애너테이션) (0) | 2023.05.25 |
자바의 정석 7 - 객체지향개념 2 (상속, 오버라이딩, this, get&set) (0) | 2023.05.23 |