728x90
- 게시판에 작성자 이름을 검색하면 그 작성자가 작성한 글의 제목을 출력하도록 프로그램을 작성한다.
- <코드1>에 QABoard class를 추가하고 main() 메소드에 QABoard 객체로 작성된 배열을 추가한다.
- <코드1>의 findSubject() 메소드를 제네릭 메소드로 변경하여 OpenBoard와 QABoard 객체에서 모두 사용할 수 있도록 한다.
<코드1>
class OpenBoard{
String subject;
String content;
String writer;
public OpenBoard(String subject, String content, String writer){
this.subject= subject;
this.content= content;
this.writer= writer;
}
}
public class BoardExample{
static OpenBoard findSubject(OpenBoard[] b, String name){
//작성자의 작성한 글 제목 찾기
}
public static void main(String[] args){
OpenBoard[] ob= {
new OpenBoard("제목1", "내용1", "글쓴이1"),
new OpenBoard("제목2", "내용2", "글쓴이2"),
new OpenBoard("제목3", "내용3", "글쓴이3") };
Scanner scanner= new Scanner(System.in);
String name= scanner.next();
System.out.println(name+ "가 작성한 글 제목: "+ findSubject(ob, name));
}
}
<QABoard class>
class QABoard{
String subject;
String content;
String writer;
public QABoard(String subject, String content, String writer){
this.subject= subject;
this.content= content;
this.writer= writer;
}
}
<main() 추가 내용>
QABoard[] qab= {
new QABoard("제목4", "내용4", "글쓴이1"),
new QABoard("제목5", "내용5", "글쓴이4"),
new QABoard("제목6", "내용6", "글쓴이3") };
<제네릭 메소드로 수정 후, 추가된 코드>
import java.util.*;
class OpenBoard {
String subject;
String content;
String writer;
public OpenBoard(String subject, String content, String writer) {
this.subject= subject;
this.content= content;
this.writer= writer;
}
public String toString() { //메소드 재정의
return writer+ subject;
}
}
class QABoard {
String subject;
String content;
String writer;
public QABoard(String subject, String content, String writer) {
this.subject= subject;
this.content= content;
this.writer= writer;
}
public String toString() { //메소드 재정의
return writer+ subject;
}
}
public class BoardExample {
public static <E> void findSubject(E[] b, String name) {
//작성자의 작성한 글 제목 찾기
//toString가져오기 , writer는 toString, substring사용하기ㅣ...
for(int i=0; i< b.length; i++) {
if((b[i].toString().substring(0,4)).equals(name)==true){
System.out.println(b[i].toString().substring(4,7));
}//else System.out.println("없어유");
}
}
public static void main(String[] args) {
OpenBoard[] ob= {
new OpenBoard("제목1", "내용1", "글쓴이1"),
new OpenBoard("제목2", "내용2", "글쓴이2"),
new OpenBoard("제목3", "내용3", "글쓴이3") };
QABoard[] qab= {
new QABoard("제목4", "내용4", "글쓴이1"),
new QABoard("제목5", "내용5", "글쓴이4"),
new QABoard("제목6", "내용4", "글쓴이3") };
Scanner scanner= new Scanner(System.in);
String name= scanner.next();
// BoardExample.findSubject(ob, name);
// BoardExample.findSubject(qab, name);
System.out.println("OpenBoard에서 "+ name+ "가 작성한 글 제목: ");
BoardExample.findSubject(ob,name);
System.out.println("QABoard에서 "+ name+ "가 작성한 글 제목: ");
BoardExample.findSubject(qab,name);
}
}
<출력>
** 없는 글쓴이를 입력했을 때 없음으로 하고싶은디,,,
public static <E> void findSubject(E[] b, String name) {
//작성자의 작성한 글 제목 찾기
//toString가져오기 , writer는 toString, substring사용하기ㅣ...
for(int i=0; i< b.length; i++) {
if((b[i].toString().substring(0,4)).equals(name)==true){
System.out.println(b[i].toString().substring(4,7));
}else System.out.println("없어유"); //<<<<여기!!
}
이렇게 코드를 해놓으면
이렇게 되버린다... 훔,,, 한번 쫙 돌고 하나도 없으면 없다고 한번만 출력되게 하고싶은디 ,, 난 바보니까,, 고민해보자,,,
728x90
반응형
'study > Programming' 카테고리의 다른 글
[Java] HashMap (2) | 2020.06.15 |
---|---|
[Java] 예외처리문(try~catch), 곱한 값이 음수일 경우 (0) | 2020.05.27 |
[JAVA] 추상 메소드, 인터페이스 (0) | 2020.05.19 |