Cod sursa(job #1355882)

Utilizator alexandru.vlad1208Vlad Alexandru alexandru.vlad1208 Data 22 februarie 2015 23:58:20
Problema Convertor Scor 60
Compilator java Status done
Runda rosedu_cdl_2015 Marime 2.61 kb
import java.io.*;
import java.util.*;
public class Main{
    public static void main(String [] args){
        List<LinkedHashMap<String,Object>> json = new ArrayList<LinkedHashMap<String,Object>>();
        try{
            BufferedReader in= new BufferedReader(
                    new InputStreamReader(
                        new FileInputStream("convertor.in")
                    )
                );
            String line ;
            String info = null;
 
            while((line=in.readLine())!=null){
                info+=line;
            }
            in.close();
            String [] v= info.split("\\{");
            String [][] w = new String [v.length][];
            for(int i=0;i<v.length;i++){
                w[i]=v[i].split(","); 
                for(int j=0;j<w[i].length;j++)
                System.out.println(w[i][j]);
            }
                 
            for(int i=1;i<v.length;i++){
                LinkedHashMap<String,Object> element = new LinkedHashMap<String,Object>();
                for(int j=0;j<w[i].length;j++){
                    String [] z=w[i][j].split(":");
                    if(z.length != 1){
                    z[0] = z[0].substring(z[0].indexOf("\"") + 1);
                    z[0] = z[0].substring(0, z[0].indexOf("\""));
                    if(z[1].contains("\"")){
                        z[1] = z[1].substring(z[1].indexOf("\"") + 1);
                        z[1] = z[1].substring(0, z[1].indexOf("\""));
                        element.put(z[0],z[1]);
                    }else{
                        z[1] = z[1].replaceAll("\\D+","");
                        int val=Integer.parseInt(z[1]);
                        element.put(z[0],val);
                    }
                }
                    z=null;
                }
                json.add(element);
                w[i]=null;
            }
            v=null;
            Iterator i= json.get(0).keySet().iterator();
            PrintStream out= new PrintStream("convertor.out");
            while(i.hasNext()){
                String key = (String) i.next();
                out.print(key+",");
            }
            out.println();
            for(LinkedHashMap<String,Object> element : json){    
                Iterator j= element.keySet().iterator();
                while(j.hasNext()){
                    String key = (String) j.next();
                    out.print(element.get(key)+",");
                }
                out.println();
            }
            out.close();
        }catch(Exception e){
            e.printStackTrace();
        }
 
    }
}