import java.util.ArrayList; import java.util.Scanner; import java.util.Arrays; import java.io.File; /** Leser en triangel fra en tekstfil, og returnerer trekanten som en 2D array. * @author Fridtjof Nystr?m * @version 1.0 */ public class TrekantLeser{ /** * @brief Leser en trekant fra en fil. Hopper over linjer som starter med #. * * @param filnavn fildestinasjonen som skal leses inn. * @return En 2D-array med tallene i trekanten. Plasser utenfor trekanten markeres * med -1. Returnerer null om feil med filen. */ public static int[][] lesTrekantFraFil(String filnavn) { ArrayList linjer = new ArrayList<>(); String[] tallOrd; int storrelse; int[][] trekanten; // Les inn i arraylist for aa finne storrelse try(Scanner in = new Scanner(new File(filnavn))) { while(in.hasNextLine()){ String nl = in.nextLine(); if(nl.charAt(0) != '#') linjer.add(nl); } } catch(Exception e) { return null; } storrelse = linjer.size(); trekanten = new int[storrelse][storrelse]; for (int i = 0; i < storrelse; i++) { Arrays.fill(trekanten[i], -1); // Fyll rad med -1. tallOrd = linjer.get(i).split(" "); for (int j = 0; j < tallOrd.length; j++) { try { trekanten[i][j] = Integer.parseInt(tallOrd[j]); } catch (Exception e) { return null; } } } return trekanten; } public static void skrivUtTrekant(int[][] trekant) { for (int i = 0; i < trekant.length; i++) { for (int j = 0; j < trekant.length && trekant[i][j] != -1; j++) { if (trekant[i][j] < 10) System.out.print("0"); System.out.print(trekant[i][j] + " "); } System.out.println(""); } } public static void prettySkrivUtTrekant(int[][] trekant) { for (int i = 0; i < trekant.length; i++) { for (int k = 0; k < (trekant.length - i); k++) System.out.print(" "); for (int j = 0; j < trekant.length && trekant[i][j] != -1; j++) { if (trekant[i][j] < 10) System.out.print("0"); System.out.print(trekant[i][j] + " "); } System.out.println(""); } } public static void skrivUtArray(int[][] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length; j++) { if (array[i][j] < 10 && array[i][j] > -1) System.out.print("0"); System.out.print(array[i][j] + " "); } System.out.println(""); } } }