[!INDEX]
- get name, color, food + CSVParser + getCSVParser +get + CSVRecord + FileResource
- display the country which export coffee + method call(parser, item)
- find country info, mt call( parser , country name)
- listExportersTwoProducts + mt(parser, item1 , item2)
- numberOfExporters + mt ( praser, money)
- bigExporter mt(parser , money)
- max value form a single csv file + new algo
- Multiple files + CSVRecord
- make above code shorter
- lowest humidity
- average temperature of a given file
1. get name, color, food + CSVParser + getCSVParser +get + CSVRecord + FileResource
import edu.duke.*;
import org.apache.commons.csv.*;
public class SimpleCsv1 {
public void readFood(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
for(CSVRecord record : parser){
System.out.print(record.get("Name")+" ");
System.out.print(record.get("Favorite Color")+" ");
// String num = record.get("Favorite Number");
System.out.println(record.get("Favorite Food"));
}
}
}
// csv file details
// Name,Favorite Color,Favorite Food
// rajat,red,rajma
// raman,blue,rice
// tushar,green,ice cream
// manoj,yellow,milk
2. display the country which export coffee + method call(parser, item)
import edu.duke.*;
import org.apache.commons.csv.*;
public class WhichCountriesExport {
public void listExporters(CSVParser parser, String exportOfInterest){
for(CSVRecord record : parser){
String export = record.get("Exports");
//if( export.indexOf(exportOfInterest)!= -1 )
if( export.contains(exportOfInterest)){
String country = record.get("Country");
System.out.println(country);
}
}
}
public void whoExportCoffee(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
listExporters(parser,"coffee");
}
}
// csv file
// Country,Exports,Value(dollars)
// Macedonia,"tobacco, textiles","$3,41,000,000"
// Madagascar,"coffee, vanilla, shellfish","$864,800,000"
// Malawi,"tea, sugar, cotton, coffee","$1332 000,000"
// Malaysia,"semiconductors, wood","$231,300,000,000"
3. find country info, mt call( parser , country name)
import edu.duke.*;
import org.apache.commons.csv.*;
public class CountryExport2 {
//1- method
public String countryInfo(CSVParser parser ,String searchcountry){
String done = null;
for(CSVRecord record : parser){
String c1 = record.get("Country");
if( c1.contains(searchcountry)){
String c = record.get("Country");
String e = record.get("Exports");
String v = record.get("Value (dollars)");
done = c+" : "+e+" : "+v;
}
}
return done;
}
public void tester(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
System.out.println(countryInfo(parser,"Germany"));
}
}
// Country,Exports,Value(dollars)
// Macedonia,"tobacco, textiles","$3,41,000,000"
// Madagascar,"coffee, vanilla, shellfish","$864,800,000"
// Malawi,"tea, sugar, cotton, coffee","$1332 000,000"
// Malaysia,"semiconductors, wood","$231,300,000,000"
4. listExportersTwoProducts + mt(parser, item1 , item2)
import edu.duke.*;
import org.apache.commons.csv.*;
public class CountryExport2 {
public void listExportersTwoProducts(CSVParser parser, String exportItem1, String exportItem2){
for(CSVRecord record : parser){
String c1 = record.get("Exports");
if( c1.contains(exportItem1) && c1.contains(exportItem2) ){
String c = record.get("Country");
System.out.println(c);
}
}
}
// method-4
public void tester(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
parser = fr.getCSVParser();
listExportersTwoProducts(parser,"gold","diamonds");
}
}
// Country,Exports,Value(dollars)
// Macedonia,"tobacco, textiles","$3,41,000,000"
// Madagascar,"coffee, vanilla, shellfish","$864,800,000"
// Malawi,"tea, sugar, cotton, coffee","$1332 000,000"
// Malaysia,"semiconductors, wood","$231,300,000,000"
5. numberOfExporters + mt ( praser, money)
import edu.duke.*;
import org.apache.commons.csv.*;
public class CountryExport2 {
public int numberOfExporters(CSVParser parser,String searchItem){
int count = 0;
for(CSVRecord record : parser){
String c1 = record.get("Exports");
if(c1.contains(searchItem)){
count = count+1;
}
}
return count;
}
public void tester(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
parser = fr.getCSVParser();
int receiveVal = numberOfExporters(parser,"gold");
System.out.println(receiveVal);
}
}
// Country,Exports,Value(dollars)
// Macedonia,"tobacco, textiles","$3,41,000,000"
// Madagascar,"coffee, vanilla, shellfish","$864,800,000"
// Malawi,"tea, sugar, cotton, coffee","$1332 000,000"
// Malaysia,"semiconductors, wood","$231,300,000,000"
6. bigExporter mt(parser , money)
import edu.duke.*;
import org.apache.commons.csv.*;
public class CountryExport2 {
public void bigExporter(CSVParser parser,String money){
for(CSVRecord record:parser){
String c1 = record.get("Value (dollars)");
if(c1.length() >= money.length()){
System.out.println(c1);
}
}
}
public void tester(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser();
parser = fr.getCSVParser();
bigExporter(parser,"$999,999,999,");
}
}
// Country,Exports,Value(dollars)
// Macedonia,"tobacco, textiles","$3,41,000,000"
// Madagascar,"coffee, vanilla, shellfish","$864,800,000"
// Malawi,"tea, sugar, cotton, coffee","$1332 000,000"
// Malaysia,"semiconductors, wood","$231,300,000,000"
7. max value form a single csv file + new algo
import edu.duke.*;
import org.apache.commons.csv.*;
public class CSVMax {
public CSVRecord hottestHourInFile(CSVParser parser ){
CSVRecord largestSoFar = null; // for making pattern
for(CSVRecord currentRow : parser){
if(largestSoFar == null){ // if null,which is YES
largestSoFar = currentRow;// update largestSoFar to first value of CSV file, create current and previous value
}
else { // calculate if not
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// CURRENT
double largestTemp = Double.parseDouble(largestSoFar.get("TemperatureF"));// largest so far or PREVIOUS
if(currentTemp > largestTemp){
largestSoFar = currentRow;
}
}
}
return largestSoFar;
}
public void testHottestDay (){
FileResource fr = new FileResource("data/2015/weather-2015-01-02.csv");
CSVRecord largest = hottestHourInFile(fr.getCSVParser());
System.out.println("hottest temperature was "+largest.get("TemperatureF")+" at "+largest.get("TimeEST"));
}
}
8. Multiple files + CSVRecord
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class CSVMaxMultipleFile {
public CSVRecord hottestHourInFile(CSVParser parser ){
CSVRecord largestSoFar = null; // for making pattern
for(CSVRecord currentRow : parser){
if(largestSoFar == null){ // if null,which is YES
largestSoFar = currentRow;// set it to the first entry
}
else { // calculate if not
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// current
double largestTemp = Double.parseDouble(largestSoFar.get("TemperatureF"));// largest so far
if(currentTemp > largestTemp){
largestSoFar = currentRow;
}
}
}
return largestSoFar;
}
// OPEN DIRECTORY FOR FILES
public CSVRecord hottestInManyDays(){
CSVRecord largestSoFar = null;
DirectoryResource dr = new DirectoryResource();
for(File f :dr.selectedFiles()){
FileResource fr = new FileResource(f);
// FETCH FIRST FILE AND NOW SEND IT TO MT TO FIND THE HOTTEST HOUR
CSVParser findfile = fr.getCSVParser();
CSVRecord currentRow = hottestHourInFile(findfile);// get current and match it
if(largestSoFar == null){
largestSoFar = currentRow;
}
else{
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// current
double largestTemp = Double.parseDouble(largestSoFar.get("TemperatureF"));// largest so far
if(currentTemp > largestTemp){
largestSoFar = currentRow;
}
}
}
return largestSoFar;
}
public void testhottestInManyDays(){
CSVRecord largest = hottestInManyDays();
System.out.println("hottest temperature was "+largest.get("TemperatureF")+" at "+largest.get("DateUTC"));
}
}
9. make above code shorter
// remove duplicate code
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class MaxMultipleFileRefactor {
public CSVRecord hottestHourInFile(CSVParser parser ){
CSVRecord largestSoFar = null; // for making pattern
for(CSVRecord currentRow : parser){
largestSoFar = getLargestOfTwo(currentRow, largestSoFar);
}
return largestSoFar;
}
public CSVRecord getLargestOfTwo(CSVRecord currentRow, CSVRecord largestSoFar){
if(largestSoFar == null){ // if null,which is YES
largestSoFar = currentRow;// set it to the first entry
}
else { // calculate if not
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// current
double largestTemp = Double.parseDouble(largestSoFar.get("TemperatureF"));// largest so far
if(currentTemp > largestTemp){
largestSoFar = currentRow;
}
}
return largestSoFar;
}
public CSVRecord hottestInManyDays(){
CSVRecord largestSoFar = null;
DirectoryResource dr = new DirectoryResource();
for(File f :dr.selectedFiles()){
FileResource fr = new FileResource(f);
CSVRecord currentRow = hottestHourInFile(fr.getCSVParser());
largestSoFar = getLargestOfTwo(currentRow, largestSoFar);
}
return largestSoFar;
}
public void testhottestInManyDays(){
CSVRecord largest = hottestInManyDays();
System.out.println("hottest temperature was "+largest.get("TemperatureF")+" at "+largest.get("DateUTC"));
}
}
10. lowest humidity
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class LowestHumidityInFile1 {
public CSVRecord lowestHumidityInFile(CSVParser humidity){
CSVRecord smallestSoFar = null; // for making pattern
for(CSVRecord currentRow : humidity){
smallestSoFar = getHumidityOfTwo(currentRow, smallestSoFar);
}
return smallestSoFar;
}
public void testLowestHumidityInFile(){
FileResource fr1 = new FileResource("nc_weather/2014/weather-2014-01-20.csv");
CSVRecord humidity = lowestHumidityInFile(fr1.getCSVParser());
// System.out.println(humidity);
String temp1 = humidity.get("Humidity");
String temp2 = humidity.get("DateUTC");
System.out.println("Lowest Humidity was "+temp1+ " at " +temp2);
}
public CSVRecord getHumidityOfTwo(CSVRecord currentRow, CSVRecord humiditySoFar){
if(humiditySoFar == null){ // if null,which is YES
humiditySoFar = currentRow;// set it to the first entry
}
else { // calculate if not
double currenthum = Double.parseDouble(currentRow.get("Humidity"));// current
double smallesthum = Double.parseDouble(humiditySoFar.get("Humidity"));// largest so far
if(currenthum < smallesthum){
humiditySoFar = currentRow;
}
}
return humiditySoFar;
}
}
11 . average temperature of a given file
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class AverageTemperature1 {
FileResource fr ;
public double averageTemperatureInFile(CSVParser avgTemp){
double averageSoFar = 0.0; // for making pattern
int count=0;
for(CSVRecord currentRow : avgTemp){
double currentAvg = Double.parseDouble(currentRow.get("TemperatureF"));// curr
averageSoFar = currentAvg + averageSoFar;
count=count+1;
}
double xx = averageSoFar/count;
return xx;
}
public void testAverageTemperatureInFile(){
FileResource fr2 = new FileResource("nc_weather/2014/weather-2014-01-20.csv");
double avgTemp1 = averageTemperatureInFile(fr2.getCSVParser());
System.out.println("Average temperature in file is "+avgTemp1);
}
public CSVRecord getSmallestOfTwo(CSVRecord currentRow, CSVRecord smallestSoFar){
if(smallestSoFar == null){ // if null,which is YES
smallestSoFar = currentRow;// set it to the first entry
}
else { // calculate if not
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// current
double smallestTemp = Double.parseDouble(smallestSoFar.get("TemperatureF"));// largest so far
if(currentTemp < smallestTemp){
smallestSoFar = currentRow;
}
}
return smallestSoFar;
}
}
12 .averageTemperatureWithHighHumidityInFile
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class AverageTemperatureWithHighHumidityInFile1 {
FileResource fr ;
public double averageTemperatureWithHighHumidityInFile(CSVParser avgTemp){
double averageSoFar = 0.0; // for making pattern
int count=0;
double currentAvg;
for(CSVRecord currentRow : avgTemp){
double avghumifdity = Double.parseDouble(currentRow.get("Humidity"));
if(avghumifdity>=80){
currentAvg = Double.parseDouble(currentRow.get("TemperatureF"));// curr
averageSoFar = currentAvg + averageSoFar;
count=count+1;
}
else{
}
}
double xx = averageSoFar/count;
return xx;
}
public void testAverageTemperatureWithHighHumidityInFile(){
double avgTemp1 = 0.0;
FileResource fr2 = new FileResource("nc_weather/2014/weather-2014-01-20.csv");
avgTemp1 = averageTemperatureWithHighHumidityInFile(fr2.getCSVParser());
if(avgTemp1==0.00){
System.out.println("No temperatures with that humidity");
}
else{
System.out.println("Average temperature in file is "+avgTemp1);
}
}
public CSVRecord getSmallestOfTwo(CSVRecord currentRow, CSVRecord smallestSoFar){
if(smallestSoFar == null){ // if null,which is YES
smallestSoFar = currentRow;// set it to the first entry
}
else { // calculate if not
double currentTemp = Double.parseDouble(currentRow.get("TemperatureF"));// current
double smallestTemp = Double.parseDouble(smallestSoFar.get("TemperatureF"));// largest so far
if(currentTemp < smallestTemp){
smallestSoFar = currentRow;
}
}
return smallestSoFar;
}
}