Cod sursa(job #1349882)

Utilizator AndlolAndrei Apostoiu Andlol Data 20 februarie 2015 15:42:47
Problema Convertor Scor 70
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.97 kb
import java.io.*;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException {
        Scanner in, auxScanner;
        PrintWriter out;
        String s,buffer;
        String[] stringArray;
        int pos1, pos2;

        in = new Scanner(new FileInputStream("convertor.in"));
        in.useDelimiter("}");

        out = new PrintWriter("convertor.out");
        
        // Get keys
        buffer = in.next().trim();// buffer contine un ob din JSON dintre {....}
        auxScanner = new Scanner(buffer);
        auxScanner.useDelimiter(",");// un obiect JSON il impart dupa ,obtinand pe rand ob de tipul:"cheie" : val
        if(auxScanner.hasNext()) {
        	s = auxScanner.next().trim();
            
            pos1 = s.indexOf('"');
            pos2 = s.indexOf('"', pos1+1);
            
            out.write(s.substring(pos1+1, pos2)+",");
        }
        while(auxScanner.hasNext()) {
            s = auxScanner.next().trim();
  
            pos2 = s.indexOf('"', 1);
            
            out.write(s.substring(1, pos2)+",");
        }
        out.println();
        in.close();
        // Get values
        in = new Scanner(new FileInputStream("convertor.in"));
        in.useDelimiter("}");
        while(in.hasNext()) {
            buffer = in.next().trim();
            if (buffer.equals("]")) break;
            
            stringArray=buffer.split(",");
            
            for(String s1:stringArray){
                if(s1.equals("")){continue;}
                s1= s1.substring(s1.indexOf(':') + 1).trim(); // s="value" sau s=1123 
                if (s1.charAt(0) == '"') {
                	s1 = s1.substring(1, s1.lastIndexOf('"'));
                }
                out.write(s1+",");
                
            }
            out.println();
            
            
        }
        
        auxScanner.close();
        in.close();
        out.close();
    }
}