Cod sursa(job #1355518)

Utilizator adriana.eneEne Adriana adriana.ene Data 22 februarie 2015 19:45:14
Problema Convertor Scor 10
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.82 kb
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"));
		String line = "";
		// pun intr-un string toate caracterele
		while (scanner.hasNextLine()) 
			line += scanner.nextLine();
		StringBuilder keys = new StringBuilder(), values = new StringBuilder();
		String value = "";
		// folosind functia split voi separa caracterele dupa "}" si ","
		// pentru a lua cheile si dupa "}", "," si ":"
		// voi lua cheile
		int len = line.split("}").length;
		for (int i = 0; i < len; i++) {
			for (int j = 0; j < line.split("}")[i].split(",").length; j++) {
								// cheile le iau o singura data
				if (i == 0) {
					String split = line.split("}")[i].split(",")[j];
					keys.append(split.substring(split.indexOf("\"") + 1,
							split.indexOf("\"", split.indexOf("\"") + 1))
							+ ",");
				}
				// pot exista caractere care contin numai un element
				// si nu sunt nici chei, nici valori
				if (line.split("}")[i].split(",")[j].split(":")[0]
						.contains("\"")){
					// iau valoarea 
					value = line.split("}")[i].split(",")[j].split(":")[1];
					// verific daca e string sau numar
					if (value.contains("\""))
						values.append(value.substring(value.indexOf("\"") + 1, value.indexOf("\"", value.indexOf("\"") + 1)) + ",");
					// daca e numar elimin spatiile
					else
						values.append(value.trim() + ",");
				}
			}
		//	if (i != line.split("}").length - 1)
			//	values.append("\n");
		}
		keys.append("\n");
		PrintWriter writer = new PrintWriter("convertor.out");
	    writer.write(String.valueOf(keys));
	    writer.write(String.valueOf(values));
	    writer.close();
	}
}