Cod sursa(job #1360612)

Utilizator andi.georgescuAndi Georgescu andi.georgescu Data 25 februarie 2015 16:48:37
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.64 kb
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws FileNotFoundException{
		
	Scanner reader =new Scanner(new FileInputStream("convertor.in"));
	PrintWriter writer= new PrintWriter("convertor.out");
	String text=reader.nextLine();
	while(reader.hasNextLine())
	{
	    text =text + reader.nextLine();		
	}
		reader.close();
		
		
		StringTokenizer st = new StringTokenizer(text, ":,");
		ArrayList<String> keys = new ArrayList<String>();
		ArrayList<String> values= new ArrayList<String>();
		int p=0;
		
		while(st.hasMoreTokens()) {
			
			String key = st.nextToken();
			int tr1=key.indexOf("\"");
			int tr2=key.indexOf("\"", tr1+1);
		
			key=key.substring(tr1+1,tr2);
			
			if(!keys.contains(key)) keys.add(key);
			if(p<keys.size()){ writer.write(key+", "); p++;}
			else if(p==keys.size()) {writer.write("\n"); p++;}
			
			String value = st.nextToken();
			if(value.contains("\"")) {
				tr1=value.indexOf("\"");
				tr2=value.indexOf("\"",tr1+1);
				value=value.substring(tr1+1, tr2);
			}else{
			value=value.replace("}","");
			value=value.replace(" ", "");
			value=value.replace("]", "");}
			values.add(value);
	       
		}
		/*for(int i = 0 ; i < keys.size(); i++)
			writer.write(keys.get(i)+",");
		writer.write("\n");*/
		
		for(int i = 0 ; i < values.size(); i++)
			if((i+1)% keys.size()==0) writer.write(values.get(i)+",\n");
			else writer.write(values.get(i)+",");
		
		writer.close();
		
}}