Pagini recente » Cod sursa (job #2865710) | Cod sursa (job #255178) | Cod sursa (job #2207094) | Cod sursa (job #2780186) | Cod sursa (job #1359471)
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 = "", text = "", value = "";
// variabila in care voi retine dimensiune vectorul rezultat
// dupa ce am facut split dupa caracterele "}" si "'"
int lengthArray;
// variabila folosita pentru a afisa cheile o singura data
boolean key = false;
while (scanner.hasNextLine()) {
line = scanner.nextLine();
// salvez intr-un string toate caracterele aflate intre acolade
if (line.indexOf('}') > 0) {
// am gasit acolada inchisa, parsez
text += line;
// retin numarul stringurile care au caractere aflate intre acolade
int len = text.split("}").length;
if (key == false) {
// scot cheile
lengthArray = text.split("}")[0].split(",").length;
for (int j = 0; j < lengthArray; j++) {
// cheile le iau o singura data
String split = text.split("}")[0].split(",")[j];
// afisez fara ghilimele si cu virgula
writer.write(split.substring(split.indexOf("\"") + 1,
split.indexOf("\"", split.indexOf("\"") + 1)) + ",");
}
writer.write("\n");
key = true;
}
// scot valorile
for (int i = 0; i < len; i++) {
String split1 = text.split("}")[i];
lengthArray = split1.split(",").length;
for (int j = 0; j < lengthArray; j++) {
// pot exista caractere care contin numai un element
// si nu sunt nici chei, nici valori
if (split1.split(",")[j].split(":")[0].contains("\"")) {
// iau valoarea
value = split1.split(",")[j].split(":")[1];
// verific daca e string sau numar
if (value.contains("\"")) {
int index = value.indexOf("\"") + 1;
writer.write(value.substring(index,
value.indexOf("\"", index)) + ",");
}
// daca e numar elimin spatiile
else
writer.write(value.trim() + ",");
}
}
// pentru ultimele valori nu mai pun caracterul "\n"
if (i != text.split("}").length - 1)
writer.write("\n");
}
text = "";
}
// altfel, pun in continuare la text
else
text += line;
}
writer.close();
}
}