Pages: [1]   Go Down
Print
Author Topic: Vi prego leggete  (Read 901 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 04-04-2009, 17:27:25 »

Mi riesce un esercizio, ma stranamente, o meglio dal mio punto di  vista mi dovrebbe dare eccezione:

Dove vedete il while, la condizione che ho messo non capisco come fa ad essere corretta, dato che all'interno eseguo sempre un incremento che la renderebbe falsa?
O meglio dato che poi all'interno del while cont andrebbe fuori, non dovrebbe dare un'eccezione?

Code:
/*Scrivere un metodo che prende in input una matrice di stringhe e restituisce un'altra matrice con le stesse stringhe.
Se è presente però il carattere 'g', sostituirlo con un asterisco.*/


class eserciziocaratteri
{
public static void main(String [] args)
{
String [][] S={{"retgg","khljotiy","toiype"},
                     {"tywdvoi","ggggk","ropitwp"},
     {"mvcla","apsfoe","dpptou"}};
     String [][] B=prendi(S);
     for(int r=0; r<B.length; r++)
     for(int k=0; k<B.length; k++)
     System.out.print(B[r][k]+" ");
}


public static String[][] prendi(String[][]S)
{
String p="";
String [][]B=new String[S.length][S.length];
int cont=0;
for(int r=0; r<S.length; r++)
{
for(int c=0; c<S.length; c++)
{
p="";
while(cont<S[r][c].length())
{
if(S[r][c].charAt(cont)!='g')
p+=S[r][c].charAt(cont);
else
p+='*';

cont++;

}
cont=0;
B[r][c]=p;
}
}
return B;
}
}
« Last Edit: 04-04-2009, 17:29:17 by guitarplaying » Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #1 on: 04-04-2009, 17:46:36 »

ti complichi la vita,xkè nn fai un semplice for ke scorre i caratteri e se c'e la g lo scambia 
Logged

isuccia89
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 481



« Reply #2 on: 04-04-2009, 17:55:50 »

io qst l'ho fatto così e mi funziona benissimo... prova a dare un'occhiata 

Code:
public class carattG
{
  public static String[][] asterisco(String[][] S, byte j)
  {
    String[][] S1 = new String[S.length][];
    for(int r=0; r<S.length; r++){
      S1[r]=new String[S[r].length];
      for(int c=0; c<S[r].length; c++){
if(c == (int)j){
        String str = S[r][c];
S1[r][c] = "";
        for(int s=0; s<str.length(); s++){
          if(str.charAt(s)=='g')
            S1[r][c] += '*';
  else
            S1[r][c] += str.charAt(s);
        }
      }
else
S1[r][c] = S[r][c];
    }
      }
    return S1;
  }
Logged

Se incontrerai qualcuno persuaso di saper tutto e di esser capace di far tutto non potrai sbagliare, costui è un imbecille! (Confucio)
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #3 on: 04-04-2009, 18:27:08 »

Quote
ti complichi la vita,xkè nn fai un semplice for ke scorre i caratteri e se c'e la g lo scambia

Bè forse non lo hai letto in qualche altro post, ma già l'avevo scritto, io sono uno "specialista" a complicarmi la vita  cool

comunque non era un errore era la mia testa il problema.
Grazie isuccia, darò un'occhiata per curiosità.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: [1]   Go Up
Print
Jump to: