Cod sursa(job #1346674)

Utilizator AndlolAndrei Apostoiu Andlol Data 18 februarie 2015 15:32:39
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 2.89 kb
package javaapplication9;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
    
    Scanner scanner = new Scanner(new FileInputStream("convertor.in"));
    PrintWriter out = new PrintWriter("convertor.out");
    
    scanner.useDelimiter("},");
    String container="";
    String test1,test2="";
    
    container=scanner.next().trim();
       
    Scanner keyScanner=new Scanner(container);
    keyScanner.useDelimiter(",");
    //aflare chei
    while(keyScanner.hasNext()){
        String key=keyScanner.next().trim();
        
        int position1=key.indexOf('"');
        int position2=key.indexOf('"', position1+1);
        
        out.write(key.substring(position1+1,position2)+",");
        test1=key.substring(position1+1,position2);
                
    }
    out.println();
    keyScanner.close();
    // aflare valori
    while (scanner.hasNext()){
            Scanner valueScanner=new Scanner(container);
            valueScanner.useDelimiter(",");
            
            while(valueScanner.hasNext()){
                String value=valueScanner.next().trim();
            
                int position1=value.indexOf(':');
                int position2=value.length();
            
                test2=value.substring(position1+1,position2).trim();
                if(test2.indexOf('"')== -1) {
                    out.write(value.substring(position1+1,position2).trim()+",");
                }
                else{
                    out.write(test2.substring(1,test2.length()-1).trim()+",");
                }
            }
            out.println();
            container=scanner.next().trim(); 
            valueScanner.close();
    }
    // ultimul obiect din JSON
     Scanner valueScanner=new Scanner(container);
            valueScanner.useDelimiter(",");
            
            while(valueScanner.hasNext()){
                String value=valueScanner.next().trim();
                int rightCurly=value.lastIndexOf('}');
                int position2;
                
                int position1=value.indexOf(':');
                if(rightCurly == -1) {
                   position2=value.length();
                }
                else {
                   position2=rightCurly;
                }
                test2=value.substring(position1+1,position2).trim();
                if(test2.indexOf('"')== -1) {
                    out.write(value.substring(position1+1,position2).trim()+",");
                   
                }
                else{
                    position2=test2.lastIndexOf('"');
                    out.write(test2.substring(1,position2).trim()+",");
                }
            }
     valueScanner.close();
     scanner.close();
     out.close();
}
}