Pagini recente » Cod sursa (job #2086010) | Cod sursa (job #2076930) | Cod sursa (job #501824) | Statistici Oprinoiu Gabriel (gaby_oprinoiu) | Cod sursa (job #1355888)
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
class Main {
private static List<ArrayList<String>> storage;
private static int mainField = 0;
private static int query = 0;
public static void readFromInternFile() throws IOException {
storage = new ArrayList<ArrayList<String>>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(
new FileInputStream("convertor.in"), "UTF8"));
String line;
while((line = br.readLine()) != null) {
processLine(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
br.close();
}
}
public static void printCSVinFile() throws FileNotFoundException, UnsupportedEncodingException {
PrintWriter pw = new PrintWriter("convertor.out","UTF8");
int size = storage.size();
for(int j = 0; j < size; j++) {
for(int k = 0; k < storage.get(j).size(); k++) {
pw.print(storage.get(j).get(k) + ",");
}
pw.println();
}
pw.close();
}
public static void processLine(String line) throws FileNotFoundException, UnsupportedEncodingException {
StringTokenizer st = new StringTokenizer(line,"\\{|\\}");
while(st.hasMoreElements()) {
String stringToAdd = st.nextToken();
if(stringToAdd.contains("[")) {
storage.add(new ArrayList<String>());
storage.add(new ArrayList<String>());
query++;
mainField = 0;
continue;
}
if(stringToAdd.contains("]")) {
break;
}
StringTokenizer stringTokenByQuotes = new StringTokenizer(stringToAdd, "\"");
while(stringTokenByQuotes.hasMoreElements()) {
String stringToken = stringTokenByQuotes.nextToken();
StringTokenizer stringTokenByComma = new StringTokenizer(stringToken, ",");
if(!stringTokenByComma.hasMoreElements()) {continue;}
stringToken = stringTokenByComma.nextToken();
if(stringToken.contains(":")) {
stringToken = stringToken.substring(stringToken.indexOf(':')+1);
}
while(stringToken.startsWith(" ")) stringToken = stringToken.substring(1);
if(stringToken.length() == 0) {
continue;
}
if(mainField != 0) {
storage.get(mainField).add(stringToken);
mainField = 0;
} else {
if(storage.get(0).indexOf(stringToken) == 0) {
query++;
mainField = query;
storage.add(new ArrayList<String>());
continue;
}
if(storage.get(0).contains(stringToken)) {
mainField = query;
continue;
}
storage.get(0).add(stringToken);
mainField = query;
}
}
}
}
public static void main(String[] args) throws IOException {
readFromInternFile();
printCSVinFile();
}
}