Cod sursa(job #1355290)

Utilizator adriana.eneEne Adriana adriana.ene Data 22 februarie 2015 16:07:53
Problema Convertor Scor 40
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.67 kb
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
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();
		}
		String keys = "", values = "", value = "";
		// folosind functia split voi separa caracterele dupa "}" si ","
		// pentru a lua cheile si dupa "}", "," si ":"
		// voi lua cheile
		for (int i = 0; i < line.split("}").length; 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 += 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 += value.substring(value.indexOf("\"") + 1, value.indexOf("\"", value.indexOf("\"") + 1)) + ",";
					// daca e numar elimin spatiile
					else
						values += value.trim() + ",";
				}
			}
			values += "\n";
		}
		keys += "\n";
		FileOutputStream out = new FileOutputStream("convertor.out");
		out.write(keys.getBytes());
		out.write(values.getBytes());
		out.close();
	}
}