Pagini recente » Cod sursa (job #253826) | Cod sursa (job #1355550)
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"));
String line = "";
// pun intr-un string toate caracterele
while (scanner.hasNextLine())
line += scanner.nextLine();
StringBuilder keys = new StringBuilder(), values = new StringBuilder();
String value = "";
// folosind functia split voi separa caracterele dupa "}" si ","
// pentru a lua cheile si dupa "}", "," si ":"
// voi lua cheile
int len = line.split("}").length;
for (int i = 0; i < len; i++) {
int lenj = line.split("}")[i].split(",").length;
for (int j = 0; j < lenj; j++) {
// cheile le iau o singura data
if (i == 0) {
String split = line.split("}")[i].split(",")[j];
keys.append(split.substring(split.indexOf("\"") + 1,
split.indexOf("\"", split.indexOf("\"") + 1))
+ ",");
}
// pot exista caractere care contin numai un element
// si nu sunt nici chei, nici valori
if (line.split("}")[i].split(",")[j].split(":")[0]
.contains("\"")) {
// iau valoarea
value = line.split("}")[i].split(",")[j].split(":")[1];
// verific daca e string sau numar
if (value.contains("\""))
values.append(value.substring(value.indexOf("\"") + 1,
value.indexOf("\"", value.indexOf("\"") + 1))
+ ",");
// daca e numar elimin spatiile
else
values.append(value.trim() + ",");
}
}
if (i != line.split("}").length - 1)
values.append("\n");
}
keys.append("\n");
PrintWriter writer = new PrintWriter("convertor.out");
writer.write(String.valueOf(keys));
writer.write(String.valueOf(values));
writer.close();
}
}