Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Dec 11, 2020 1:46 PM
Modified: Dec 13, 2020 8:45 PM
Views: 2
Tags: twodimarray
  1. public class Main {
  2.     // TODO: 23.11.2020 Verteilen Sie Zeichen einer Zeichenkette auf ein ausreichend großes n*n-char-Array. Fülle überschüssige Elemente mit Leerzeichen
  3.     public static void main(String[] args) {
  4.         String myText = "Java ist so toll!";
  5.         int sideLength = calcSideLength(myText);
  6.         char[][] quad = new char [sideLength][sideLength];
  7.         System.out.println(sideLength);
  8.         insertCharacters(myText,quad);
  9.         outputArray(quad);
  10.  
  11.  
  12.     }
  13.     //berechnet die Seitenlänge eines char-Quadrats (n*n Array), das groß genug ist, um allen Zeichen der Zeichenkette aufzunehmen
  14.     //Ich übergebe einen String, der String des Inputs!
  15.     public static int calcSideLength(String s){
  16.         int n = 0;
  17.         do{
  18.             n++;
  19.         }
  20.         while(n*n < s.length());
  21.  
  22.         return n; //der richtige Wert
  23.     }
  24.     //füllt eine Zeichenkette Zeichen für Zeichen in ein
  25.     //quad. Array. Anstelle fehlender Zeichen wird ' ' eingefügt.
  26.     public static void insertCharacters (String s,char [][] ar ){
  27.         int row = ar.length;
  28.         int col = ar[0].length;  //Länge der ersten Spalte des Arrays
  29.  
  30.         //zuerst alle Zeichen aufffüllen
  31.         for (int i = 0; i < s.length(); i++) {
  32.             ar[i/col][i%col] = s.charAt(i);
  33.         }
  34.         // falls es leere Array-Elemente gibt, dann mit Leerzeichen füllen
  35.         for (int i = 0; i < col*col; i++) { //Quadrat, deswegen col*col
  36.             if (ar[i/col][i%col] == 0){
  37.                 ar[i/col][i%col] = ' ';
  38.             }
  39.         }
  40.     }
  41.  
  42.     public static void outputArray(char[][] data){
  43.         for (int i = 0; i < data.length; i++) {
  44.             //Wir kriegen eine Zeile des Arrays an der Stelle i.
  45.             System.out.println(Arrays.toString(data[i]));
  46.         }
  47.  
  48.     }
  49. }
  50.