Cod sursa(job #1358856)

Utilizator ana_mirelaIrimia Mirela ana_mirela Data 24 februarie 2015 20:14:22
Problema Convertor Scor 0
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.9 kb
import java.io.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;


public class Main {
	
	public static void main(String[] args) throws IOException{
		
		ArrayList<String> keys = new ArrayList<>();
		ArrayList<String> values = new ArrayList<>();
		String tok;
		int i, count = 0;
		boolean key_repeat = false, display_values = false;
		PrintWriter pw = new PrintWriter("convertor.out");
 		
		Scanner s = new Scanner(new FileInputStream("convertor2.in"));
		s.useDelimiter("[\\[\\],{}\n:]");
		
		while (s.hasNext()){
			tok = s.next();
			//tokenul citit nu este format doar din whitespace-uri
			if (tok.trim().length() > 0){
				tok = tok.trim();
				
				//eliminare ghilimele atunci cand e cazul
				if (tok.charAt(0) == '"')
					tok = tok.substring(1, tok.length() - 1);
				
				//count are valoare para pentru chei si impara pentru valori
				if (count % 2 == 0)
					if (keys.contains(tok)){
						key_repeat = true;
					}
					else{
						keys.add(tok);
						pw.write(tok + ",");
					}
				else{
					//nu am extras inca toate cheile => salvez valorile
					if (!key_repeat)
						values.add(tok);
					else{
						if (!display_values){//daca nu am afisat primele valori 
							pw.write("\n");
							for (i = 0; i < values.size(); i++)
								pw.write(values.get(i) + ",");
							pw.write("\n");
							display_values = true;
						}
						if (display_values){
							pw.write(tok + ",");
							if ((count + 1) % 8 == 0)
								pw.write("\n");
						}
					}
				}
					
					
					
					
					/*	if (!keys.contains(tok)){
						keys.add(tok);
						pw.write(tok + ",");
					}
				else
					values.add(tok);
				*/
				count++;
			}
		}

	s.close();
		
	//for (i = 0; i < values.size(); i++){
		//if (i % keys.size() == 0)
			//pw.write("\n");
		//pw.write(values.get(i) + ",");
	//}
	pw.close();
	}
}