Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: atrix0ne on 06-03-2009, 13:04:26



Title: Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 13:04:26
Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca una matrice S’ ottenuta da S eliminando i primi due e gli ultimi due caratteri di ogni
stringa.*/
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c=0;
     String [][]B=new String [A.length][];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
         if(!(A[r][c].charAt(1) && !(A[r][c].charAt(A[r][c].length()-1))
           {
           B[r][c]=A[r][c];
           }
     
     for(r=0;r<B.length;r++)
        {
            for(c=0;c<B[r].length;c++)
            {
                System.out.print(B[r][c]+"\t");
            }
            System.out.println();
        }
           
     
      }
    }
   return B;
  }
}
       
ki mi può dare una mano?


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 13:20:07
Al posto dell'if devi mettere 1 altro for facendo partire l'indice da 2 (xkè vuole preso il terzo carattere) e facendolo arrivare a A[ r].length-2 (xkè nn vuole gli ultimi 2 caratteri), il resto li copi con B[r ][ c]=A[r ][ c];
in + puoi fare una verifica x vedere se la Stringa contenuta ha + di 3 caratteri


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 13:27:25
così?
Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca una matrice S’ ottenuta da S eliminando i primi due e gli ultimi due caratteri di ogni
stringa.*/
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c,k=0;
     String [][]B=new String [A.length][];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        for(k=2;k<A[r][c].length()-2;k++)
          {
           B[r][c]=A[r][c];
           }
         }
       }
     return B;
     
     }
   }


Title: Re:Aiuto metodo(come sempre)
Post by: kruger on 06-03-2009, 13:36:34
Code:
/* Scrivere un metodo ke prenda in input una matrice frastagliata A di stringhe,
 * e restituisca una matrice S1 ottenuta da S eliminando i primi due e gli ultimi
 * due caratteri di ogni stringa. */
public class Es10 {
static String[][] metodo(String[][] A) {
String[][] S1 = new String[A.length][A[A.length-1].length];
    for(int i=0; i<A.length; i++) {
for(int j=0; j<A[i].length; j++) {
if(A[i][j].length()>4) //qst ctrl serve a prevenire IndexOfBoundException
                   //in quanto la stringa deve avere almeno 5 char!!!
S1[i][j] = A[i][j].substring(2,A[i][j].length()-2);
System.out.print(S1[i][j]+" ");
}
System.out.println();
}
    return S1;
}

public static void main(String[] args) {
String[][] A = {{"MacBook","Turiddu","SalvoCIA"},
        {"Kruger","betacentury"},
        {"Cincotti","Paolo","Malefico"}};
System.out.println(Es10.metodo(A));
}
} //Kruger® Approved!!!

A ME FUNZIA BENE..

sxo t sia d'aiuto!


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 13:45:41
atrix0ne così dovrebbe andare...manca il controllo della lunghezza della stringa xò


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 13:51:09
lo so però nn và  .poverinoi


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 13:53:01
dovrebbe essere così
Code:
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c,k=0;
     String [][]B=new String [A.length][];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        if(A[r][c].length()>4)
         { 
       
        for(k=2;k<A[r][c].length()-2;k++)
          {
           B[r][c]=A[r][c];
           }
         }
         }
       }
     return B;
     
     }
   }
     



Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 13:56:37
Si =)


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 14:28:29
il compilatore:java.lang.NoSuchMethodError: main
Exception in thread "main" >Exit code: 1


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 14:53:36
Certo manca il main...


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 15:51:48
l'ho messo,lo fà pure .bah


Title: Re:Aiuto metodo(come sempre)
Post by: zElOtO on 06-03-2009, 15:55:12
 .huh


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 16:02:25
il compilatore:java.lang.NoSuchMethodError: main
Exception in thread "main" >Exit code: 1
Si ma questo errore dice che manca il main...se ti da lo stesso errore vuol dire che c'è qualcosa che nn va  .penso


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 16:09:28
Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca una matrice S’ ottenuta da S eliminando i primi due e gli ultimi due caratteri di ogni
stringa.*/
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c,k=0;
     String [][]B=new String[A.length][A[A.length-1].length];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        if(A[r][c].length()>4)
         { 
     B[r][c] = A[r][c].substring(2,A[r][c].length()-2);

    }
                      }
System.out.println();
}
           
    return B;
}
ho scritto  così xrò nnvà


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 16:14:03
Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca una matrice S’ ottenuta da S eliminando i primi due e gli ultimi due caratteri di ogni
stringa.*/
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c,k=0;
     String [][]B=new String[A.length][A[A.length-1].length];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        String temp="";
        if(A[r][c].length()>4)
         { 
         temp=A[r][c].substring(2,A[r][c].length()-2);
   
         B[r][c] = temp;
         }
       }
     }
   return B;
   }
        public static void main (String[]args)
  {
   String m[][]= { { "cimmao","cissao","cikkao","ciatto"},
                    {"cixxao","ciayyo","ciaaao" ,"ciiiio"},
                  };
     }
    }
un main idoneo come lo posso fare?


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 16:17:15
in output mi dà [[Ljava.lang.String;@3e25a5... ci vorrebbe una sorta di arraycopy


Title: Re:Aiuto metodo(come sempre)
Post by: zElOtO on 06-03-2009, 16:38:03
Allora.. Se ti stampa quel valore è perchè secondo me tu fai
Code:
System.out.println(metodo(m));
quando il metodo ritorna un array, non una stringa.
Una soluzione potrebbe essere questa:
Code:
String temp[][] = metodo(m);
for (int i = 0; i < temp.length; i++) {
  System.out.println(temp[i]);
}
Poi se devi creare una String che poi deve essere modificata usa:
Code:
String parola = new String();
Fammi sapere  :[Emoticon] PC Asd:
P.S. Hai inizializzato il valore k che vedo che non utilizzi  .ciaociao


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 16:40:08
Code:
/*Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca una matrice S’ ottenuta da S eliminando i primi due e gli ultimi due caratteri di ogni
stringa.*/
public class dodici
  {
  public static String [][] metodo(String [][] A)
    {
    int r,c,k=0;
     String [][]B=new String[A.length][A[A.length-1].length];
    for(r=0;r<A.length;r++)
      {
      for(c=0;c<A[r].length;c++)
        {
        String temp="";
        if(A[r][c].length()>4)
         { 
         temp=A[r][c].substring(2,A[r][c].length()-2);
   
         B[r][c] = temp;
         }
       }
     }
   return B;
   }
        public static void main (String[]args)
  {
   String m[][]= { { "cimmao","cissao","cikkao","ciatto"},
                    {"cixxao","ciayyo","ciaaao" ,"ciiiio"},
                  };
  String temp[][] = metodo(m);
for (int i = 0; i < temp.length; i++) {
  System.out.println(temp[i]);
}
}
}
ora mi ritorna [Ljava.lang.String;@3e25a5
[Ljava.lang.String;@19821f


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 16:43:24
(String[]args) prova a mettere lo spazio...(String[] args)
E poi scrivi
System.out.println(metodo);
Vedi se va così


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 16:48:10
nn và,aiutatemii


Title: Re:Aiuto metodo(come sempre)
Post by: Manna on 06-03-2009, 16:49:42
Ma ke errore ti da precisamente? Copialo...


Title: Re:Aiuto metodo(come sempre)
Post by: zElOtO on 06-03-2009, 16:50:56
Sorry non mi ero accorto che era frastagliato:
Code:
public class prova2 {
public static String[][] metodo(String[][] A) {
String[][] B = new String[A.length][];
for (int r = 0; r < A.length; r++) {
for (int c = 0; c < A[r].length; c++) {
  B[r] = new String[A[r].length];
}
}
for (int r = 0; r < A.length; r++) {
for (int c = 0; c < A[r].length; c++) {
String temp = new String();
if (A[r][c].length() > 4) {
temp = A[r][c].substring(2, A[r][c].length() - 2);
}
B[r][c] = temp;
}
}
return B;
}
public static void main(String[] args) {
String m[][] = {{"cimmao", "cissao", "cikkao", "ciatto"},
{"cixxao", "ciayyo", "ciaaao", "ciiiio"}};
String temp[][] = metodo(m);
for (int r = 0; r < temp.length; r++) {
for (int c = 0; c < temp[r].length; c++) {
System.out.println(temp[r][c]);
}
}
}
}
:-OK :[Emoticon] PC Asd:  .ciaociao


Title: Re:Aiuto metodo(come sempre)
Post by: atrix0ne on 06-03-2009, 17:02:42
GRAZIEEE :pray


Title: Re:Aiuto metodo(come sempre)
Post by: zElOtO on 06-03-2009, 21:48:29
Ma prego  .camberman