Convert RunTime Error

  • bongster
    bongster

    런타임 오류가 발생하는데 스태틱 변수랑 상관이 있는건가요? 아니면 문제를 잘못 풀어서 그런걸까요?? 예제 문제로는 답이 잘 나오는데..

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.atomic.AtomicInteger;
    
    public class Main {
        private static Map<String, Double> maps = new HashMap<String, Double>();
        private static Map<String, String> Convertmaps = new HashMap<String, String>();
        private static AtomicInteger atomicInteger = new AtomicInteger(1);
        public static void main(String[] args) throws NumberFormatException, IOException {
            maps.put("kg", 2.2046);
            maps.put("lb", 0.4536);
            maps.put("l", 0.2642);
            maps.put("g", 3.7854);
    
            Convertmaps.put("kg", "lb");
            Convertmaps.put("lb", "kg");
            Convertmaps.put("l", "g");
            Convertmaps.put("g", "l");
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int cases = Integer.parseInt(br.readLine());
            while(cases -- > 0){
                String[] input = br.readLine().split(" ");
                StringBuffer sb = new StringBuffer(String.valueOf(Double.parseDouble(input[0]) * maps.get(input[1])));
    
                if(sb.toString().indexOf(".") != -1){
                int cutafterdot = sb.toString().substring(sb.toString().indexOf(".") + 1).length();
    
                for(int i= cutafterdot; i < 4 ;i++){
                    sb.append("0");
                }
                if (cutafterdot > 4){
                    int roundNum = Integer.valueOf(sb.substring(sb.toString().indexOf(".") + 5,sb.toString().indexOf(".") + 6));
                    if(roundNum >= 5){
                        int changeNum = Integer.valueOf(sb.substring(sb.toString().indexOf(".") + 4,sb.toString().indexOf(".") + 5));
                        sb.replace(sb.toString().indexOf(".") + 4,sb.toString().indexOf(".") + 5, String.valueOf(changeNum + 1));
                    }
                    sb.delete(sb.toString().indexOf(".") + 5, sb.length());
                }
                }
                System.out.println(atomicInteger.getAndIncrement() + " " + sb.toString() + " " + Convertmaps.get(input[1]));
            }
        }
    }
    

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