import java.util.Arrays;
import java.util.Scanner;
class MathScore implements Comparable<MathScore>
{
String name;
int score;
// 생성자
public MathScore(String name, int score)
{
this.name = name;
this.score = score;
}
public String toString()
{
// 이름과 점수로 구성된 문자열을 반환하는 코드
return name + ", " + score;
}
public int compareTo(MathScore m)
{
return score - m.score;
}
}
public class EnglishScore implements Comparable<EnglishScore>
{
String name;
int score;
// 생성자
public EnglishScore(String name, int score)
{
this.name = name;
this.score = score;
}
public String toString()
{
// 이름과 점수로 구성된 문자열을 반환하는 코드
return name + ", " + score;
}
public int compareTo(EnglishScore e)
{
return score - e.score;
}
static <T> T findBest(T[] a)
{
Arrays.sort(a);
int length = a.length;
return a[length - 1];
}
static <T> T findScore(T[] a, String name)
{
int length = a.length;
for (int i = 0; i < length; i++)
{
if (a[i].toString().substring(0, name.length()).equals(name))
return a[i];
}
return null;
}
public static void main(String[] args)
{
EnglishScore[] ea =
{ new EnglishScore("김삿갓", 77), new EnglishScore("장영실", 88), new EnglishScore("홍길동", 99) };
MathScore[] ma =
{ new MathScore("김삿갓", 80), new MathScore("장영실", 98), new MathScore("홍길동", 70) };
String name = null;
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력 : ");
name = sc.nextLine();
System.out.println("영어 최고 점수 : " + findBest(ea));
System.out.println("수학 최고 점수 : " + findBest(ma));
try
{
System.out.println("영어 점수 : " + findScore(ea, name));
System.out.println("수학 점수 : " + findScore(ma, name));
} catch (NullPointerException e)
{
System.out.println("명령행 인자가 없습니다.");
}
}
}
이건 코드 전문이고 값을 입력했을 때 반환 값이 Null이면 System.out.println("명령행 인자가 없습니다."); 이게 나와야되는데 절대 안나오네요; 방법좀ㅠㅠ 6시간째 잠도 못자고 과제합ㅂ니다 ㅠㅠ
댓글 0