package org.jlab.groot.data;
import java.util.Scanner;
public class DataParser {
String data = "";
int nCols = 0;
public int DATAY = 0;
public int DATAX = 1;
public int DATAYERR = 2;
public int DATAXERR = 3;
public DataParser(String data) {
this.data = data;
}
public GraphErrors getGraphErrors() {
GraphErrors graph = new GraphErrors();
Scanner scanner = new Scanner(data);
int lineCounter = 0;
int numElementsForEachLine = 0;
while (scanner.hasNext()) {
String line = scanner.nextLine();
Scanner lineScanner = new Scanner(line);
int numElements = 0;
while (lineScanner.hasNext()) {
double d = 0.0;
if (lineScanner.hasNextInt()) {
d = (double) lineScanner.nextInt();
numElements++;
} else if (lineScanner.hasNextDouble()) {
d = lineScanner.nextDouble();
numElements++;
} else {
d = 0.0;
String idk = lineScanner.next();
}
}
if (lineCounter == 0) {
numElementsForEachLine = numElements;
}
Scanner lineScanner2 = new Scanner(line);
double x = 0.0;
double y = 0.0;
double xerr = 0.0;
double yerr = 0.0;
int counter = 0;
while (lineScanner2.hasNext()) {
double d = 0.0;
if (lineScanner2.hasNextInt()) {
d = (double) lineScanner2.nextInt();
numElements++;
} else if (lineScanner2.hasNextDouble()) {
d = lineScanner2.nextDouble();
numElements++;
} else {
d = 0.0;
String idk = lineScanner2.next();
}
if (counter == 0) {
x = d;
} else if (counter == 1) {
y = d;
} else if (counter == 2){
if(numElementsForEachLine==3){
yerr = d;
}else{
xerr = d;
}
}else if(counter == 3){
yerr = d;
}
counter++;
}
graph.addPoint(x, y, xerr, yerr);
lineCounter++;
}
return graph;
}
}
Ads help maintain this website.