Cod sursa(job #1337738)

Utilizator tinamaneaValentina Manea tinamanea Data 9 februarie 2015 14:00:27
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.91 kb
import java.lang.*;
import java.nio.file.*;
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {

		StringBuffer sbuf = new StringBuffer();
		StringBuffer buf = new StringBuffer();
		String text, toSplit, key, value;
		int begin, end, begin_pair, end_pair;
		int quote;
		String[] result;
		boolean firstPass = true;

		File file = new File("convertor.out");
		if (!file.exists()) {
			file.createNewFile();
		}
		FileWriter fw = new FileWriter(file.getAbsoluteFile());
		BufferedWriter bw = new BufferedWriter(fw);

		Scanner sc = new Scanner(new File("convertor.in"));

		while (sc.hasNextLine())
			sbuf.append(sc.nextLine());

		text = sbuf.toString();

		begin = text.indexOf('{');

		while (begin != -1) {

			end = text.indexOf('}', begin);

			begin_pair = begin + 1;
			end_pair = text.indexOf(',', begin_pair);

			while (end_pair != -1) {
				toSplit = text.substring(begin_pair, end_pair);

				result = toSplit.split(":");

				key = result[0];
				value = result[1];

				quote = key.indexOf('\"');
				if (quote != -1) {
					key = key.substring(quote + 1);
					quote = key.indexOf('\"');
					key = key.substring(0, quote);
				}
				key = key.trim();

				if (firstPass)
					bw.write(key + ",");

				quote = value.indexOf('\"');
				if (quote != -1) {
					value = value.substring(quote + 1);
					quote = value.indexOf('\"');
					value = value.substring(0, quote);
				}
				value = value.trim();

				if (firstPass)
					buf.append(value + ",");
				else
					bw.write(value + ",");

				if (end_pair == end)
					break;

				begin_pair = end_pair + 1;
				end_pair = text.indexOf(',', begin_pair);
				if (end_pair > end || end_pair == -1)
					end_pair = end;
			}

			if (firstPass) {
				bw.newLine();
				bw.write(buf.toString());
				bw.newLine();
				firstPass = false;
			} else
				bw.newLine();

			begin = text.indexOf('{', end);
		}
		bw.close();
	}
}