|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#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! |
|
|
|
|
|
#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. |
|
|
|
|
|
#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| | | | | | | | | | | | | | | | | | | | | | | | | | |
__________________
Project HTPC: work in progress! |
|
|
|
|
|
#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 |
|
|
|
|
|
#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. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2006
Città: MILANO
Messaggi: 1645
|
ma tanto vai a capo!
__________________
xoooxoooxooox |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 191
|
non ci riesco help me!!!
__________________
Project HTPC: work in progress! |
|
|
|
|
|
#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: 16:50.




















