Cod sursa(job #1350000)

Utilizator rrprom13Radulescu Radu Paul - 323CC rrprom13 Data 20 februarie 2015 16:47:04
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 2.33 kb
package cdl;

import java.io.*;
import java.util.*;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class Main {
	
	static Hashtable hash = new Hashtable();
	static int ok = 0;
	
	public static void main(String[] args) throws IOException {
		
//		String dir = System.getProperty("user.dir");
		Scanner br = new Scanner(new FileInputStream("convertor.in"));
		String s;
		String aux;
		int index, index2;
		Vector key = new Vector();
		Vector<Vector> val = new Vector<Vector>();
		int nr = 0;
		
		while (br.hasNext()) {
			s = br.nextLine();
			String[] t = s.split(",");
			for (int i = 0 ; i < t.length ; i++) {
				if (ok == 0) {
					if (t[i].matches("^.*[^a-zA-Z0-9 ].*$")) {
						index = t[i].indexOf("\"");
						index2 = t[i].indexOf("\"", index + 1);
						aux = t[i].substring(index + 1, index2);
						key.add(aux);
						aux = t[i].substring(index2 + 1, t[i].length());
						aux = aux.trim();
						aux = aux.substring(1, aux.length());
						aux = aux.trim();
						if (aux.contains("\"")) {
							index = aux.indexOf("\"");
							index2 = aux.indexOf("\"", index + 1);
							aux = aux.substring(index + 1, index2);
						}
						val.add(new Vector());
						val.elementAt(nr++).add(aux);
					}
					if (t[i].contains("}")) {
						ok = 1;
						nr = 0;
					}
				}
				else {
					if (t[i].matches("^.*[^a-zA-Z0-9 ].*$")) {
						index = t[i].indexOf("\"");
						index2 = t[i].indexOf("\"", index + 1);
						aux = t[i].substring(index + 1, index2);
						aux = t[i].substring(index2 + 1, t[i].length());
						aux = aux.trim();
						aux = aux.substring(1, aux.length());
						aux = aux.trim();
						if (aux.contains("\"")) {
							index = aux.indexOf("\"");
							index2 = aux.indexOf("\"", index + 1);
							aux = aux.substring(index + 1, index2);
						}
						val.elementAt(nr).add(aux);
						if (nr + 1 == key.size())
							nr = 0;
						else
							nr++;
					}
				}		
				
			}
		}
		br.close();
		
		PrintWriter pw = new PrintWriter("convertor.out");
		for (int i = 0 ; i < key.size() ; i++)
			pw.write(key.get(i) + ",");
	//	pw.println();
		nr = val.get(0).size();
		for (int i = 0 ; i < nr ; i++) {
			for (int j = 0 ; j < val.size() ; j++)
				pw.write(val.get(j).get(i) + ",");
		//	if (i < nr - 1)
		//		pw.println();
		}
		pw.close();
	}

}