Cod sursa(job #1355576)

Utilizator adriana.eneEne Adriana adriana.ene Data 22 februarie 2015 21:09:27
Problema Convertor Scor 50
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.79 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"));
		PrintWriter writer = new PrintWriter("convertor.out");
		String line = "";
		// pun intr-un string toate caracterele
		while (scanner.hasNextLine())
			line += scanner.nextLine();
		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;
		
		//scot cheile
		int lenj =  line.split("}")[0].split(",").length;
		for (int j = 0; j < lenj; j++) {
			// cheile le iau o singura data
				String split = line.split("}")[0].split(",")[j];
				writer.write(split.substring(split.indexOf("\"") + 1,
						split.indexOf("\"", split.indexOf("\"") + 1))
						+ ",");
		}
		writer.write("\n");
		
		//scot valorile
		for (int i = 0; i < len; i++) {
			lenj =  line.split("}")[i].split(",").length;
			for (int j = 0; j < lenj; j++) {
				// 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("\""))
						writer.write(value.substring(value.indexOf("\"") + 1,
								value.indexOf("\"", value.indexOf("\"") + 1))
								+ ",");
					// daca e numar elimin spatiile
					else
						writer.write(value.trim() + ",");
				}
			}
			if (i != line.split("}").length - 1)
				writer.write("\n");
		}
		writer.close();
	}
}