dave: print_r in Java?

Hallo!

Gibt es in Java eine ähnliche Funktion wie print_r() in PHP? Oder weiß jemand eine andere Möglichkeit, wie ich eine formatierte Matrix ausgebe?

Vielen Dank für eure Hilfe
dave

  1. Hallo Dave,

    ich hatte mal eine Verbesserte Funktion von print_r() in PHP versucht zu schreiben. Vielleicht hilft Dir der Aufbau, um in Java ein Funktion zu erstellen (bitte poste sie hier auch ;).

      
    function eddi_r($a,$exit=0,$b="\n")  
     {  
     if(($c=gettype($a))=='array' || $c=='object')  
      {  
      settype($a,'array');  
      
      $b.="  "; $i=0; $j=0; $y=''; $z=array();  
      
      $y.=ucfirst($c).$b.'(';  
      
      foreach($a as $k=>$v)  
       {  
       $z[$i]=array($c=($b."  [".$k."]"),'');  
      
       $j=(($c=strlen($c))>$j) ? $c : $j;  
      
       $z[$i][1]['type']=($c=gettype($v));  
       if($c=='array' || $c=='object')  
        if( array_key_exists($k,$a[$k])  && ($d=array_keys($a[$k]))==array_keys($a[$k][$k]) &&  
         array_key_exists($k,$a[$k][$k])  && $d==array_keys($a[$k][$k][$k])   &&  
         array_key_exists($k,$a[$k][$k][$k]) && $d==array_keys($a[$k][$k][$k][$k])   &&  
         array_key_exists($k,$a[$k][$k][$k][$k]) && $d==array_keys($a[$k][$k][$k][$k][$k])  
         )  
         $z[$i][1]['cont']=$v.' (*RECURSION*)';  
        else $z[$i][1]['cont']=eddi_r($v,0,$b.'  ');  
       else  $z[$i][1]['cont']=$v;  
      
       $i++;  
       }  
      
      for($k=0;$k<$i;$k++)  
       {  
       if($z[$k][1]['type']!='array' && $z[$k][1]['type']!='object')  
        {  
        $x=explode("\n",$z[$k][1]['cont']);  
        $c=count($x);  
        $v=$x[0]."\n";  
      
        for($l=1;$l<($c-1);$l++)  
         $v.=str_pad($x[$l],strlen(str_pad($z[$k][0],$j))+3+strlen($x[$l]),' ',0)."\n";  
      
        $v=trim($v).((array_key_exists($l,$x)) ? $x[$l] : '');  
        }  
       else $v=$z[$k][1]['cont'];  
      
       $y.=str_pad($z[$k][0],$j).' => '.$v;  
       }  
      
      $y.=$b.")";  
      }  
     else $y=$a;  
      
     if($exit>0)  exit("$y\n");  
     elseif($b=="\n  ") echo $y."\n";  
     else   return($y);  
     }  
    
    

    Gruß aus Berlin!
    eddi

    --
    Achte die Kleinigkeiten, aber liebe das Detail!
  2. Hallo,

    Gibt es in Java eine ähnliche Funktion wie print_r() in PHP? Oder weiß jemand eine andere Möglichkeit, wie ich eine formatierte Matrix ausgebe?

    Was ist eine formatierte Matrix? Was genau willst du ausgeben?
    Wahrscheinlich mußt du es "von Hand" machen. Wenn du aber genauer
    beschreibst, was du brauchst, können wir dir vielleicht doch eine
    Methode nennen, die das von dir gewünschte Ergebnis liefert.

    Gruß
    Slyh

  3. moin dave :)

    Gibt es in Java eine ähnliche Funktion wie print_r() in PHP? Oder weiß jemand eine andere Möglichkeit, wie ich eine formatierte Matrix ausgebe?

    So eine Funktion gibt es in Java nicht. Aber schlaue Leute haben sich schon Gedanken drum gemacht (so wie Eddi z.B.).
    Dieses Blog könnte zusätzlich für dich interessant sein.

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)