Pages: [1]   Go Down
Print
Author Topic: Un altro esercizio che non mi funziona  (Read 923 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: 02-04-2009, 21:24:11 »

Non fa affatto quello che dovrebbe fare, ma ristampa la matrice di partenza....

Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe ed un
byte j, e restituisca una matrice S’ copia di S in cui in ogni stringa della colonna j-esima ogni
occorrenza del carattere ‘g’ è sostituita da un carattere ‘*’.  */

class Ex21
{
public static void main(String[]args)
{
byte j=2;
String [][] S={{"lecce", "ggg","sempre"},
                    {"forse","dubbioso","permaloso"},
    {"generico","stop","dimentica"}};
    String[][] S1=prendimatrice(S,j);
    for(int rg=0; rg<S.length; rg++)
    for(int col=0; col<S[rg].length; col++)
    System.out.print(S1[rg][col]+" ");
   
 
}




   public static String[][] prendimatrice(String[][]S, byte j)
{

int cont=0;

String [][]S1=new String[S.length][];
for(int r=0; r<S.length; r++)
{

S1[r]=new String[S[r].length];

for(int k=0; k<S[r].length; k++)
{
S1[r][k]=S[r][k];

}
}
for(int r1=0; r1<S1.length; r1++)
        {

while(cont!=S1[r1][j].length()-1)
{
if(j<S[r1].length)
if(S1[r1][j].charAt(cont)=='g')
S1[r1][j]+='*';


cont++;
}
cont=0;
}

return S1;

}
               


}
Logged

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

Gender: Male
Posts: 344


Apprezzatemi ora. Eviterete la fila


WWW
« Reply #1 on: 02-04-2009, 23:04:16 »

Non ho guardato con attenzione il codice, ma da una prima sbirciatina credo che il problema stia nel fatto che j lo inizializzi a 2, ma la numerazione degli indici degli array parte da 0, quindi non stai modificando la colonna 2, ma la colonna 3 (di indice 2).

Code:
Pertanto non modifica la voce "ggg", che si trova in posizione [0][1] e non [0][2].

Spero di essere stato chiaro e di avere ragione  ok

Ci si becca a lezione  ciao
« Last Edit: 03-04-2009, 00:54:49 by Eleirgab » Logged

Collettivo SDAI

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GIT d-- s+:+ a-- C++ UL++ P L+++ E- W+++>$ N? o? K- w-- O? M V? PS++ PE- Y+ PGP- t 5? X+ R>+ tv-- b++ DI+++ D- G e h! r y+
------END GEEK CODE BLOCK-----
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #2 on: 02-04-2009, 23:10:50 »

Giustissimo, grande....ora c'è solo un problema, che per come ho scritto io, non mi sostituisce le g, ma concatena gli asterischi dopo le g...come caspita si sostituiscono???
Grazie mille per l'attenzione.
Logged

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

Gender: Male
Posts: 344


Apprezzatemi ora. Eviterete la fila


WWW
« Reply #3 on: 03-04-2009, 12:45:34 »

Prova così:
Code:
while(cont!=S1[r1][j].length()-1)
{
String temp="";
if(j<S[r1].length)
if(S1[r1][j].charAt(cont)=='g')
temp+='*';
else
temp+=S1[r1][j].charAt(cont);
cont++;
}
S1[r1][j] = temp;
cont=0;
}
Devi creare una nuova stringa con i giusti caratteri e assegnarla ad S1
Logged

Collettivo SDAI

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GIT d-- s+:+ a-- C++ UL++ P L+++ E- W+++>$ N? o? K- w-- O? M V? PS++ PE- Y+ PGP- t 5? X+ R>+ tv-- b++ DI+++ D- G e h! r y+
------END GEEK CODE BLOCK-----
Pages: [1]   Go Up
Print
Jump to: