2016-03-06 2 views
0
class Anadromi001 
    { 
     public void Anadromi01 (Foititis[] F, short ap01, short i) 
      { 
       if (ap01 == 4) System.exit(0); 
       Anadromi002 obj02 = new Anadromi002(); 
       String onoma, epitheto; 
       short MesOr; 
       int AritMit, EtosEis; 
       short ap02; 
       boolean flag00, flag02, flag03; 
       int k, f, l = 0;   
       k = F.length-1 
[...] 
case 3: 
         f = obj02.Anadromi02(F, l); 
         if (f == -1) System.out.println("O pinakas einai adeios."); 
         else 
          { 
           for (int j = 0; j <= f; j++) 
            { 
             System.out.println(F[j].toString()); 
            } 
          } 
         //System.out.println(f); 
         break; 
        } 
    } 

Это часть моего кода, что я хочу делать, если я называю второй рекурсии (текущий код сам по себе является рекурсия), а затем использовать значение из второй рекурсии, чтобы напечатать мой метод toString (помещенный в класс объекта). Не обращайте внимания на case 3, это всего лишь «код» для пользователя, который выбирает, что делать в программе.метод ToString на массив объектов вызывается из метода рекурсии

class Foititis 
    { 
     String onoma, epitheto; 
     short MesOr; 
     int AritMit, EtosEis; 
     public Foititis (String on, String ep, int AM, int EE, short MO) 
      { 
       onoma = on; 
       epitheto = ep; 
       AritMit = AM; 
       EtosEis = EE; 
       MesOr = MO; 
      } 

     public String toString() 
      { 
       String emf; 
       emf = "--------------------" + "\n"; 
       emf = "Onoma: " + onoma + "\n"; 
       emf = "Epwnymo: " + epitheto + "\n"; 
       emf = "Arithmos Mitrwoy: " + AritMit + "\n"; 
       emf = "Etos Eisagwnis: " + EtosEis + "\n"; 
       emf = "Mesos Oros Mathimatwn: " + MesOr + "\n"; 
       emf = "--------------------"; 
       return emf; 
      } 
    } 

Все я получаю в качестве выходного сигнала, когда я выполнить программу, является: --------------------

ответ

0

использование

emf = emf + "Prevous line" + "\n"; 

на каждой новой строке. Ваша последняя строка - печать.

Правильный формат будет:

   emf = "--------------------" + "\n"+ 
       "Onoma: " + onoma + "\n"+ 
       "Epwnymo: " + epitheto + "\n"+ 
       "Arithmos Mitrwoy: " + AritMit + "\n"+ 
       "Etos Eisagwnis: " + EtosEis + "\n"+ 
       "Mesos Oros Mathimatwn: " + MesOr + "\n"+ 
       "--------------------"; 

ИЛИ

 emf = "--------------------" + "\n"; 
     emf = emf + "Onoma: " + onoma + "\n"; 
     emf = emf + "Epwnymo: " + epitheto + "\n"; 
     emf = emf + "Arithmos Mitrwoy: " + AritMit + "\n"; 
     emf = emf + "Etos Eisagwnis: " + EtosEis + "\n"; 
     emf = emf + "Mesos Oros Mathimatwn: " + MesOr + "\n"; 
     emf = emf + "--------------------"; 
0

Использование += вместо = для конкатенации строк, или вы увидите, что asssigned наконец.

public String toString() 
    { 
     String emf; 
     emf = "--------------------" + "\n"; 
     emf += "Onoma: " + onoma + "\n"; 
     emf += "Epwnymo: " + epitheto + "\n"; 
     emf += "Arithmos Mitrwoy: " + AritMit + "\n"; 
     emf += "Etos Eisagwnis: " + EtosEis + "\n"; 
     emf += "Mesos Oros Mathimatwn: " + MesOr + "\n"; 
     emf += "--------------------"; 
     return emf; 
    } 

Или просто

public String toString() 
    { 
     return "--------------------" + "\n" + 
       "Onoma: " + onoma + "\n" + 
       "Epwnymo: " + epitheto + "\n" + 
       "Arithmos Mitrwoy: " + AritMit + "\n" + 
       "Etos Eisagwnis: " + EtosEis + "\n" + 
       "Mesos Oros Mathimatwn: " + MesOr + "\n" + 
       "--------------------"; 
    } 
0

вы фактически назначая новое значение в каждой строке вместо добавления. поэтому он показывает только последнюю строку. Из второго задания, вы можете использовать

emf += <your string> 

или вы можете использовать StringBuilder и добавить строки .. и, наконец, ToString

Смежные вопросы