Pagini recente » Cod sursa (job #671798) | Cod sursa (job #737611) | Cod sursa (job #1124239) | Atasamentele paginii zxzx._jskds | Cod sursa (job #1355650)
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 = "";
String text = "";
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
String value = "";
// folosind functia split voi separa caracterele dupa "}" si ","
// pentru a lua cheile si dupa "}", "," si ":"
// voi lua cheile
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++) {
lenj = text.split("}")[i].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 (text.split("}")[i].split(",")[j].split(":")[0]
.contains("\"")) {
// iau valoarea
value = text.split("}")[i].split(",")[j].split(":")[1];
// verific daca e string sau numar
if (value.contains("\""))
writer.write(value.substring(value
.indexOf("\"") + 1, value.indexOf("\"",
value.indexOf("\"") + 1))
+ ",");
// 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();
}
}