robię program na zaliczenie Javy,szyfruje tekst z pliku do pliku trzema metodami: szyfr Cezara, ga-de-ry-po-lu-ki oraz szyfr przestawieniowy macierz. Program piszę w NetBeans. Nie wiem jak podejść do ostatniej metody. Powinna mi zliczyć ciąg znaków i dopisać np * na końcu tak, aby jego długość była kwadratem możliwie najmniejszej liczby naturalnej, wtedy mogę 'zbudować' macierz kwadratową z tych znaków i odczytać ją kolumnami (bo na tym polega ta metoda), stworzyłem już coś takiego:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package szyfrowanie; /** * * @author Karol */ public class Przestawienny { public String koduj(String secret) { char tablica[]= secret.toCharArray(); int N=(int) Math.pow(Math.floor(Math.sqrt(secret.length())),2); char[][] A ; for (int i = 0; i < N-1; i++){ int p=N*i; for (int j = 0; j < N-1; j++){ if (secret.length<j+p+1){ A[i][j] = tablica[j+p]; } else{ A[i][j] = "*"; } } } for(int k=0; k<Math.pow(N,2)-1; k++){ for (int i = 0; i < N-1; i++){ for (int j = 0; j < N-1; j++){ tablica[k] = A[j][i]; } } } return new String(tablica); } }jeszcze nie wiem czy działa poprawnie, bo nie wiem jak zadeklarować macierz A, bo póki co do A-variable A might not have been initialized- zmienna A może nie została zainicjowana.
Czyli póki co pytanie brzmi jak zadeklarować macierz A, bo na pewno nie char[][] A
oraz jak podstawic *, bo w " " nie działa