XHAENEUNG 오류 관련 질문입니다.

• k31265451

import java.util.HashMap;
import java.util.Scanner;

public class Xhaeneing {

static int calculate(int a, int b, String oper) {

int result=0;
switch (oper) {
case "+":
result = a+b;
break;
case "-":
result = a-b;
break;
case "*":
result = a*b;
break;

default:
break;
}
return result;
}

static int stringToInt(String a, String b, String oper) {
int x=0;
int y=0;

if(a.equals("zero"))
x=0;
if(a.equals("one"))
x=1;
if(a.equals("two"))
x=2;
if(a.equals("three"))
x=3;
if(a.equals("four"))
x=4;
if(a.equals("five"))
x=5;
if(a.equals("six"))
x=6;
if(a.equals("seven"))
x=7;
if(a.equals("eight"))
x=8;
if(a.equals("nine"))
x=9;
if(a.equals("ten"))
x=10;

if(b.equals("zero"))
y=0;
if(b.equals("one"))
y=1;
if(b.equals("two"))
y=2;
if(b.equals("three"))
y=3;
if(b.equals("four"))
y=4;
if(b.equals("five"))
y=5;
if(b.equals("six"))
y=6;
if(b.equals("seven"))
y=7;
if(b.equals("eight"))
y=8;
if(b.equals("nine"))
y=9;
if(b.equals("ten"))
y=10;

return calculate(x,y,oper);

}

static String intToString(int a) {
String x=null;

if(a==0)
x="zero";
if(a==1)
x="one";
if(a==2)
x="two";
if(a==3)
x="three";
if(a==4)
x="four";
if(a==5)
x="five";
if(a==6)
x="six";
if(a==7)
x="seven";
if(a==8)
x="eight";
if(a==9)
x="nine";
if(a==10)
x="ten";

return x;
}

static boolean sort(String result, String answer) {
/////////////////reedff  erdeff
HashMap<Character, Integer> hash = new HashMap<Character, Integer>();
HashMap<Character, Integer> hash2 = new HashMap<Character, Integer>();

for(int x=0;x<result.length();x++){

if(hash.get(result.charAt(x)) == null){
hash.put(result.charAt(x), 1);
}
else if(hash.get(result.charAt(x)) != null)
hash.put(result.charAt(x), hash.get(result.charAt(x))+1);

}
}
return hash.equals(hash2);
}
else
return false;

}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int a=0;
boolean[] flag = new boolean[num];

while(a<num){
String arr1 = sc.next();
String oper = sc.next();
String arr2 = sc.next();
sc.next();
String ans = sc.next();

int result1 = stringToInt(arr1, arr2, oper);
String result2 = intToString(result1);

flag[a] = sort(result2, ans);

a++;
}
for(boolean out:flag){
if(out==true)
System.out.println("Yes");
else
System.out.println("No");
}
}

}

먼저 이클립스에서는 실행이 되는데 여기서는 런타임 오류가 나네요ㅜㅜ어떠한 부분에서 오류가 나는지 궁금합니다.

두번째로 구조적으로 문제가 있는지 그리고 더 좋은 로직을 짤려면 어떠한 방식으로 접근하는지가 좋은지 궁금합니다.
그럼 수고하세요:)

9년 전
1개의 댓글이 있습니다.

• WeissBlume

1
one - ten = nine
이 경우에 NullPointerException이 일어날 것으로 보입니다.

9년 전
• 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.