Cod sursa(job #1338409)

Utilizator NadoluBogdanNadolu Bogdan NadoluBogdan Data 9 februarie 2015 23:41:37
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 2.21 kb
package Convertor2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Hashtable;
import java.util.StringTokenizer;
import java.util.TreeMap;
import java.util.Vector;

public class Conv {

	Hashtable<String, String> ht = new Hashtable<String, String>();
	
	public Conv (String[] s1, String[] s2, int lung)
	{
		for (int i = 0; i < lung; i++)
		{
			ht.put(s1[i], s2[i]);
		}
	}
	
	public static void main (String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader (new FileReader("convertor.in"));
		BufferedWriter bw = new BufferedWriter (new FileWriter("convertor.out"));
		
		Vector<Conv> convs = new Vector<Conv>();
		
		String all = new String();
		
		try {
	        StringBuilder sb = new StringBuilder();
	        String line = br.readLine();

	        while (line != null) {
	            sb.append(line);
	            sb.append(System.lineSeparator());
	            line = br.readLine();
	        }
	        all = sb.toString();
	    } finally {
	        br.close();
	    }
		
		
		StringTokenizer st1 = new StringTokenizer (all, "{}[]");
		while (st1.hasMoreTokens())
		{
			StringTokenizer st2 = new StringTokenizer (st1.nextToken(), ",\n");
			String[] s1 = new String[100];
			String[] s2 = new String[100];
			int lung = 0;
			int parity = 0, len1 = 0, len2 = 0;
			while (st2.hasMoreTokens())
			{
				StringTokenizer st3 = new StringTokenizer (st2.nextToken(), ":\"");
				
				while (st3.hasMoreTokens())
				{
					String aux = st3.nextToken();
					if (aux.trim().length() > 0)
					{
						if (aux.indexOf(" ") == 0)
						{
							aux = aux.trim();
						}
						if (parity % 2 == 0)
						{
							s1[len1++] = aux;
						}
						else
						{
							s2[len2++] = aux;
						}
						parity ++;
						lung = len1;
					}
				}
			}
			
			if (lung != 0)
			{
				convs.add(new Conv(s1, s2, lung));
			}
		}
		for (Conv cv : convs)
		{
			System.out.println(cv.ht);
		}
		for (String key : convs.elementAt(0).ht.keySet())
		{
			bw.write(key + ",");
		}
		bw.write("\n");
		for (Conv cv : convs)
		{
			for (String value : cv.ht.values())
			{
				bw.write(value + ",");
			}
			bw.write("\n");
		}
		bw.close();
	}
}