| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  19-06-2008, 02:17 | #1 | 
| Senior Member Iscritto dal: May 2001 
					Messaggi: 191
				 | 
				
				[JAVA]Iterare i caratteri di una stringa ed inserirli in un array bidimensionale
			 
		Sto sviluppando il gioco "ruota della fortuna", ho problemi nell'inserimento della frase misteriosa nel tabellone. Il mio tabellone è un array bidimensionale di char, con dimensioni 4x12. Sono riuscito tramite l'interfaccia CharacterIterator ad iterare la frase ed inserirla nell'array, ma sorge il problema dello spezzamento delle parole...come posso risolverlo? vorrei anche posizionare le parole della frase al centro del tabellone se la frase lo permette. Codice: private void inserisciFrase() {
		if (fraseMisteriosa.length() <= LIMITE) {
			CharacterIterator it = new StringCharacterIterator(" "+fraseMisteriosa.getTesto());
			for (char ch=it.first(); ch != CharacterIterator.DONE; ch=it.next()) {
			
			for (int r = 0; r < tabellone.length; r++) {
				for (int c = 0; c < tabellone[r].length; c++) {
					
					if(it.current()!= CharacterIterator.DONE){
					tabellone[r][c]=it.next();
					}
					
					}
				}
			}
		}
		else {
			System.out
					.println("Errore : non sono ammesse frasi che hanno più di 48 catteri");
		}
	}Codice: Questo è solo un esempio Codice: |Q| |u| |e| |s| |t| |o| | | |è| | | |s| |o| |l| |o| | | |u| |n| | | |e| |s| |e| |m| |p| |i| |o| |\uffff| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| |.| Grazie!   
				__________________ Project HTPC: work in progress!   | 
|   |   | 
|  19-06-2008, 11:02 | #2 | 
| Senior Member Iscritto dal: Jul 2006 Città: MILANO 
					Messaggi: 1645
				 | 
		io farei cosi': ho la mia frase in una String. char ch[] =String.toCharArray(); /* public char[] toCharArray() */ poi suddivido ch[] nei vari pezzetti con un bel ciclo for. 
				__________________ xoooxoooxooox Ultima modifica di wizard_at : 19-06-2008 alle 11:06. | 
|   |   | 
|  19-06-2008, 16:11 | #3 | 
| Senior Member Iscritto dal: May 2001 
					Messaggi: 191
				 | 
		ho risolto così: Codice:         /**
	 * Inserisce una frase nel tabellone
	 */
	private void inserisciFrase() {
		if (fraseMisteriosa.length() <= LIMITE) {
		caratteriFrase= fraseMisteriosa.getTesto().toCharArray();
		int count=0;
		
			// scorro l'array [][] tabellone
			for (int r = 0; r < tabellone.length; r++) {
				for (int c = 0; c < tabellone[r].length; c++) {
					
					
					// inserisco ogni carattere nel tabellone
					if(count<caratteriFrase.length)
					tabellone[r][c]=caratteriFrase[count++];
	
				}
			}
			}
			else
				System.out.println("Errore : non sono ammesse frasi che hanno più di 48 catteri");
		}Codice: |Q|u|e|s|t|o| |è| |s|o|l| |o| |u|n| |e|s|e|m|p|i|o| | | | | | | | | | | | | | | | | | | | | | | | | | |  ...come posso risolverlo? suggerimenti? 
				__________________ Project HTPC: work in progress!   | 
|   |   | 
|  19-06-2008, 19:26 | #4 | 
| Senior Member Iscritto dal: Jul 2006 Città: MILANO 
					Messaggi: 1645
				 | 
		allora....beh semplice: unalinea e' lunga 12. guardi al carattere il cosa c'e'. se c'e' uno spazio va tuto bene se c'e' un carattere torni indietro fino a quando non trovi uno spazio poi copi dall'inizio al punto trovato. per la seconda linea fai punto_trovato+12) e fai la stessa cosa. 
				__________________ xoooxoooxooox | 
|   |   | 
|  20-06-2008, 01:45 | #5 | |
| Senior Member Iscritto dal: May 2001 
					Messaggi: 191
				 | Quote: 
     
				__________________ Project HTPC: work in progress!   Ultima modifica di EnZiMa : 20-06-2008 alle 01:48. | |
|   |   | 
|  20-06-2008, 14:01 | #6 | 
| Senior Member Iscritto dal: Jul 2006 Città: MILANO 
					Messaggi: 1645
				 | 
		
ma tanto vai a capo!
		 
				__________________ xoooxoooxooox | 
|   |   | 
|  23-06-2008, 01:31 | #7 | 
| Senior Member Iscritto dal: May 2001 
					Messaggi: 191
				 | 
		non ci riesco help me!!!        
				__________________ Project HTPC: work in progress!   | 
|   |   | 
|  28-06-2008, 10:13 | #8 | 
| Senior Member Iscritto dal: Jul 2006 Città: MILANO 
					Messaggi: 1645
				 | 
		ciao,  sono stato via tutta la settimana e non ho potuto rispondere. Codice: class fioco{
	public static void main(String args[]){
		
		String fraseMisteriosa = "Questa e' solo una prova";  //metto una frase, anche se e' il limite toglie la parte finale
		
		char caratteriFrase[]= new char [fraseMisteriosa.length()]; //creo un char
		
		caratteriFrase = fraseMisteriosa.toCharArray(); //converto la stringa
		
		int altezza=3, lunghezza = 12;  //mi imposto altrezza e larchezza della tabella
			char tabella [][] = new char[altezza][lunghezza];//mi creo una tabella
		//riempio di spazi
		for (int i =0; i<3; i++){
			for (int j=0; j<12; j++){
				tabella[i][j]=' ';
			}
		}
		
		//mette nella tabella....no so perche' ma funziona
		int start=0, stop=0; 
		for (int rig=0; rig<altezza; rig++){
			int pos=0;
			boolean trov=false;
			do{
				try{if(caratteriFrase[start+lunghezza-pos]==' '){
					stop=start+lunghezza-pos;
					int a=0;
					for (int col=start; col<stop ; col++){
						tabella [rig][a]= caratteriFrase[col];
						a++;
					}
					trov=true;
				}else{
					pos++;
				}
				}catch(ArrayIndexOutOfBoundsException ae){
					int a=0;
					for (int col=start; col<caratteriFrase.length ; col++){
						tabella [rig][a]= caratteriFrase[col];
						a++;
					}
					trov=true;
					rig=altezza;
				}
			}while (trov==false);
			start=stop+1;
		}
		//Stampa tabella
		for (int i=0; i<altezza; i++) {
			for (int j=0; j<lunghezza; j++){
				System.out.print(tabella[i][j]);
			}
			System.out.println();
		}
		
	}
}ciao 
				__________________ xoooxoooxooox | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 17:23.









 
		 
		 
		 
		








 
  
 



 
                        
                        










