Pagini recente » Cod sursa (job #1344087) | Cod sursa (job #1682735) | Cod sursa (job #1698879) | Cod sursa (job #204465) | Cod sursa (job #1358856)
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();
}
}