Pagini recente » Cod sursa (job #2076536) | Cod sursa (job #176808) | Cod sursa (job #882868) | Cod sursa (job #2002654) | Cod sursa (job #1356757)
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 = "";
int lenj;
boolean chei = false;
// pun intr-un string toate caracterele
while (scanner.hasNextLine()) {
line = scanner.nextLine();
if (line.indexOf('}') > 0) {
// am gasit acolada inchisa, parsez
text += line;
// fac parsarea
// folosind functia split voi separa caracterele dupa "}" si ","
// pentru a lua cheile si dupa "}", "," si ":"
int len = text.split("}").length;
// afisez cheile o singura data
if (chei == false) {
// scot cheile
lenj = text.split("}")[0].split(",").length;
for (int j = 0; j < lenj; j++) {
// cheile le iau o singura data
String split = text.split("}")[0].split(",")[j];
writer.write(split.substring(split.indexOf("\"") + 1,
split.indexOf("\"", split.indexOf("\"") + 1))
+ ",");
}
writer.write("\n");
chei = true;
}
// scot valorile
for (int i = 0; i < len; i++) {
String split1 = text.split("}")[i];
lenj = split1.split(",").length;
for (int j = 0; j < lenj; 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() + ",");
}
}
if (i != text.split("}").length - 1)
writer.write("\n");
}
text = "";
}
// altfel, pun in continuare la text
else
text += line;
}
writer.close();
}
}