Quote Originariamente inviata da LuLyLuNa Visualizza il messaggio
ma non funziona nemmeno così
codice:
class Main{
	public static void main (String[] args) throws java.lang.Exception
	{
		String s = cifra(3, "Ciao come va?");
		System.out.println(s);
		System.out.println(decifra(3, s));
	}
	
	public static String cifra(int key, String messaggio) {        
        int c = key;
        String output = "";




        messaggio = messaggio.replaceAll("\\s", "");




        int r = messaggio.length()/c;
        if (messaggio.length()%c != 0){
            r++;
        }
        int pos = 0;
     
        char[][] M = new char [r][c];
            for (int i = 0; i < r; i++) {
                for (int j = 0; j < c; j++) {
                    if (pos == messaggio.length())
                    break;
                    M[i][j] = messaggio.charAt(pos);
                    pos++;
                }
            }
            
            for (int i = 0; i < c; i++) {
                for (int j = 0; j < r; j++) {
                    output += M[j][i];
                }
            }
        return output;
    }
    
    public static String decifra(int key, String messaggio) {        
        int c = key;
        String output = "";




        messaggio = messaggio.replaceAll("\\s", "");




        int r = messaggio.length()/c;
        if (messaggio.length()%c != 0){
            r++;
        }
        int pos = 0;
     
        char[][] M = new char [r][c];
            for (int j = 0; j < c; j++) {
                for (int i = 0; i < r; i++) {
                    if (pos == messaggio.length())
                    break;
                    M[i][j] = messaggio.charAt(pos);
                    pos++;
                }
            }
            
            for (int i = 0; i < r; i++) {
                for (int j = 0; j < c; j++) {
                    output += M[i][j];
                }
            }
        return output;
    }
}