Commit f03c01f7 by Patryk Czarnik

przykład mcdonadls

parent 1274e0e1
...@@ -35,4 +35,5 @@ build/ ...@@ -35,4 +35,5 @@ build/
.vscode/ .vscode/
### Mac OS ### ### Mac OS ###
.DS_Store .DS_Store
\ No newline at end of file /mcdonalds2.csv
package przyklady_plikowe;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class McDonalds1 {
public static void main(String[] args) {
try(BufferedReader input = new BufferedReader(new FileReader("mcdonalds.csv"))) {
String linia = input.readLine();
// pierwsza linia zawiera nazwy kolumn
String[] naglowki = linia.split(",");
// dalsze linie zawierają dane - czytamy dopóki nie dojdziemy na koniec pliku
while((linia = input.readLine()) != null) {
// System.out.println(linia);
String[] dane = linia.split(",");
System.out.printf("Produkt '%s' z kategorii %s ma %s kalorii przy rozmiarze %s%n",
dane[1], dane[0], dane[3], dane[2]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package przyklady_plikowe;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class McDonalds2 {
public static void main(String[] args) {
Locale.setDefault(Locale.US);
// opisuję napis taki jak (123 g)
// dodatkowe nawiasy otaczają ciąg cyfr - w ten sposób definiuję "grupę" nr 1, do której będę odwoływał się w kodzie
Pattern pattern = Pattern.compile("\\((\\d+) g\\)");
try(BufferedReader input = new BufferedReader(new FileReader("mcdonalds.csv"))) {
String linia = input.readLine();
// pierwsza linia zawiera nazwy kolumn
String[] naglowki = linia.split(",");
// dalsze linie zawierają dane - czytamy dopóki nie dojdziemy na koniec pliku
while((linia = input.readLine()) != null) {
String[] dane = linia.split(",");
Matcher matcher = pattern.matcher(dane[2]);
if(matcher.find()) {
double kalorie = Double.parseDouble(dane[3]);
int gramy = Integer.parseInt(matcher.group(1));
double nasycenie = kalorie / gramy;
System.out.printf("Produkt '%s' z kategorii %s ma %.1f kalorii przy rozmiarze %d → nasycenie %.3f%n",
dane[1], dane[0], kalorie, gramy, nasycenie);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package przyklady_plikowe;
import java.io.*;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class McDonalds3 {
// w tej wersji wyniki zapisuję do nowego pliku csv
public static void main(String[] args) {
Locale.setDefault(Locale.US);
Pattern pattern = Pattern.compile("\\((\\d+) g\\)");
try(BufferedReader input = new BufferedReader(new FileReader("mcdonalds.csv"));
BufferedWriter output = new BufferedWriter(new FileWriter("mcdonalds2.csv"))) {
String linia = input.readLine();
String[] naglowki = linia.split(",");
output.write(linia);
output.write(",gramy,nasycenie");
output.newLine();
while((linia = input.readLine()) != null) {
String[] dane = linia.split(",");
Matcher matcher = pattern.matcher(dane[2]);
if(matcher.find()) {
double kalorie = Double.parseDouble(dane[3]);
int gramy = Integer.parseInt(matcher.group(1));
double nasycenie = kalorie / gramy;
output.write(String.join(",", dane));
output.write(String.format(",%d,%.3f", gramy, nasycenie));
output.newLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment