Pagini recente » Cod sursa (job #2621447) | Cod sursa (job #2989668) | Cod sursa (job #1016266) | Cod sursa (job #2436136) | Cod sursa (job #1355954)
import java.io.*;
import java.util.Scanner;
// just a test solution. to be refactored and commented later
public class Main {
static PrintWriter writer;
private static boolean first = true;
private static int parity = 1;
static String prima="";
public static void main(String[] args)throws IOException
{ // long startTime = System.currentTimeMillis();
Scanner reader = new Scanner(new FileInputStream("convertor.in"));
writer = new PrintWriter("convertor.out");
reader.skip("\\[");
reader.useDelimiter("}");
while(reader.hasNext()){
parseObjects(reader.next());
writer.println("");
if(first == true){
first = false;
writer.write(prima);
writer.println("");
}
parity = 1;
}
writer.close();
reader.close();
//long endTime = System.currentTimeMillis();
//System.out.println("That took " + (endTime - startTime) + " milliseconds");
}
private static void parseObjects(String object) throws IOException{
Scanner objectReader = new Scanner(object);
objectReader.useDelimiter(",");
while(objectReader.hasNext()){
parseKeysAndValues(objectReader.next());
}
objectReader.close();
}
private static void parseKeysAndValues(String keyAndValue) throws IOException{
Scanner keyAndValueReader = new Scanner(keyAndValue);
keyAndValueReader.useDelimiter(":");
while(keyAndValueReader.hasNext()){
String result = keyAndValueReader.next();
if( (first == false)&& (parity %2!=0) ){
if(keyAndValueReader.hasNext()){
result = keyAndValueReader.next();
parity++;
}
}
result = result.replaceAll("\"|\\{|\\]","");
result = result.trim();
if(!result.isEmpty()){
//System.out.println(result);
if( (first == true)&&(parity %2!=0) ){
writer.write(result);
writer.write(",");
}else if(first==true){
prima = prima+result+",";
}
if( (first == false)&&(parity%2==0) ){
writer.write(result);
writer.write(",");
}
}
parity++;
}
keyAndValueReader.close();
}
}