Pagini recente » Cod sursa (job #1048526) | Cod sursa (job #868857) | Cod sursa (job #2807151) | Cod sursa (job #1667529) | Cod sursa (job #1345430)
/*
* Realizat pentru inscrierea la CDL
* Nan Mihai - Facultatea de Automatica si Calculatoare
* Grupa - 324CC
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Scanner;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeMap;
import java.util.Vector;
import java.lang.Object;
/**
*
* @author Nan Mihai
*/
public class Main {
private String name;
private LinkedHashMap<String, Vector<String>> dictionar;
private int nrE = 0;
public Main() {
dictionar = new LinkedHashMap<String, Vector<String>>();
}
public static void main(String args[]) throws FileNotFoundException {
Main c = new Main();
c.read("convertor.in");
c.write("convertor.out");
}
public void read(String namefile) throws FileNotFoundException {
Scanner reader = new Scanner(new FileInputStream(namefile));
String text = "";
String line, key, value;
while(reader.hasNext()) {
line = reader.nextLine();
text += line;
}
StringTokenizer st = new StringTokenizer(text, ",");
while(st.hasMoreTokens()) {
String aux = st.nextToken();
key = getKey(aux);
value = getValue(aux);
if(dictionar.containsKey(key)) {
Vector<String> v = dictionar.get(key);
v.add(value);
if(v.size() > nrE) {
nrE = v.size();
}
} else {
Vector<String> v = new Vector<String>();
v.add(value);
dictionar.put(key, v);
nrE = 1;
}
}
reader.close();
}
public String getKey(String s) {
String key = "", aux = "";
String pref = "";
char c = '"';
pref += c;
StringTokenizer st = new StringTokenizer(s, ":");
aux = st.nextToken();
st = new StringTokenizer(aux, pref);
aux = st.nextToken();
if(aux.contains("{")) {
key = st.nextToken();
} else {
key = aux;
}
return key;
}
public String getValue(String s) {
String value = "", aux = "";
String pref = "";
char c = '"';
pref += c;
StringTokenizer st = new StringTokenizer(s, ":");
aux = st.nextToken();
aux = st.nextToken();
st = new StringTokenizer(aux, pref);
aux = st.nextToken();
if(aux.equals(" ")) {
value = st.nextToken();
} else {
value = aux;
}
if(value.startsWith(" ")) {
value = value.replaceFirst(" ", "");
}
return value;
}
public void write(String namefile) throws FileNotFoundException {
PrintWriter writer = new PrintWriter(namefile);
for(String key : dictionar.keySet()) {
writer.write(key + ",");
}
writer.write("\n");
int i;
String line = "";
for(i = 0; i < nrE; i++) {
line = "";
for(Vector<String> values : dictionar.values()) {
line += values.elementAt(i) + ",";
}
if(i != nrE - 1)
writer.write(line + "\n");
else
writer.write(line);
}
writer.close();
}
}