» »

[java] funkcija ekvivalentna print_r v PHP

[java] funkcija ekvivalentna print_r v PHP

sverde21 ::

Torej iščem funkcijo, ki je ekvivalentna print_r v PHP. Obstaja kaj takšnega?
<?php echo `w`; ?>

Karlos ::

Mislim da ne.
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."

Karlos ::

No po drugi strani pa obstaja nekaj podobnega.

import java.util.*;

class Test
{
	public static void main(String[] args)
	{
		ArrayList<Integer> sez;
		sez = new ArrayList<Integer>();
		sez.add(5);
		sez.add(10);
		
		System.out.println(sez); // Izpise [5 , 10]
	}
}
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."

sverde21 ::

Jst bi rabu da izpiše z ključem se pravi:
[0] => foo
[1] => bar

Sicr pa v PHP sm v 10-20 min spisu ekvivalentno funkcijo že vgrajeni print_r():
function printr($arr)
{
	if(is_array($arr))
	{
		$out = "Array\r\n(\r\n";
		foreach($arr as $key => $value)
		{
			$out .= "\t[" . $key . "] => ";
			if(is_array($value))
			{
				$array = printr($value);
				$array = explode("\r\n", $array);
				foreach($array as $line)
				{
					if($line == 'Array')
					{
						$out .= $line . "\r\n";
					}
					else
					{
						$out .= "\t" . $line . "\r\n";
					}
				}
			}
			else
			{
				$out .= $value . "\r\n";
			}
		}
		$out .= ")\r\n";
	}
	else
	{
		$out = $arr;
	}
	return $out;
}

Stvar čisto ekvivalentno izpiše array kot print_r() ampak problem je v tem, da se javo šele učim na novo in ne najdem funkcij, ki bi mi foreach nadomestile (znam napisat foreach v javi ampak brez izpisa ključa), is_array() ter explode() :8) . Torej če ni že vgrajene podobne funkcije mi prosim povejte kak nej rewrite v Javi naredm ;)
<?php echo `w`; ?>

sverde21 ::

Nobeden ne ve? Sicer se mi je pa še pojavilo eno vprašanje in sicer se sploh da ustvarit array s svojim ključem? npr.

kot v JavaScriptu ter PHP gre takole:

sadje['jabolko'] = 'rdeče';
sadje['hruska'] = 'rumena';
...

Ker gledam v manualu za Javo in ne najdem takšnih primerov.
<?php echo `w`; ?>

root987 ::

"Myths which are believed in tend to become true."
--- George Orwell

sverde21 ::

Sm že sam tudi našel tale link.. in mi ni bil kaj preveč v pomoč, zato sem napisal vprašanje semle ;)
<?php echo `w`; ?>

kopernik ::

import java.util.HashMap;
import java.util.Map;

public class Sadje {
    public static void main(String[] args) {
        Map sadje = new HashMap();
        sadje.put("jabolko", "rdece");
        sadje.put("hruska", "rumena");
        
        System.out.println(sadje); 
        //izpise {jabolko=rdece, hruska=rumena}
    }
}

sverde21 ::

Se pravi za to moram vzeti drug tip |O "Map" in ne "Array" :\
<?php echo `w`; ?>

kopernik ::

Ja, normalno. Array ali polje je čisto druga podatkovna struktura kot hash tabela (ali hash mapa, slovar, pa še kak izraz bi se našel).

sverde21 ::

Jah PHP ima vse skupaj, tako da ni bistvene razlike, lahko delaš tud take arraye:
$arr = array('foo' => 'bar', 'krneki', 'slo' => 'tech', 'test');
kar vrne:
Array
(
    [foo] => bar
    [0] => krneki
    [slo] => tech
    [1] => test
)
se pravi lahko kombiniraš oboje in podobno ;)

BTW obstaja kakšna funkcija ki mi vrne ime tipa oz. true, če je tip array... (podobno is_array() v PHP :)) )
<?php echo `w`; ?>

Zgodovina sprememb…

  • spremenil: sverde21 ()

kopernik ::

Java je strogo tipiziran jezik, vsaka spremenljivka mora biti točno določenega tipa (oz. razreda), za razliko od skriptnih jezikov, kjer mnogokrat tipa sploh ni potrebno deklarirati.

Sicer pa lahko kaj podobnega (kot si napisal) počneš tudi v javi, s tem da kreiraš array ali seznam objektov (Object[] ali List< Object>) in lahko noter tlačiš poljubne objekte, kar pa je nepriporočljiva praksa, saj lahko ob majhni nepazljivosti prihaja do zoprnih napak pri uporabi takih struktur.

Ugotavljanje razreda spremenljivke v Javi ni težko, npr. uporabiš rezervirano besedo instanceof. Je pa tako, da ravno zaradi zgoraj omenjene stroge tipiziranosti to večinoma ni potrebno, saj vglavnem že veš kakšnega tipa so (ali naj bi bile) spremenljivke. Povej mi primer, kjer to rabiš, da ti lahko lažje pomagam.

Zgodovina sprememb…

  • spremenil: kopernik ()

sverde21 ::

Sploh ne rabim več, ker sem ugotovil, da je Java res mahjena na te tipe ;) . Mal mi gre to na živce, ker nimam takšne svobode |O npr. da bi vrnila funkcija ob uspehu nek string, ob neuspehu pa boolean ;( zmer javac teži ob takih primerih:\

aja btw ono funkcijo ekvivalentno is_array() (PHP) sem mislil uporabiti za preverjanje če je array dvodimenzjonalen... ampak opažam da se stvar kot
int array[][] = {1,{1,2},{1,2}};
ne izide v Javi :'(
<?php echo `w`; ?>

kopernik ::

Izide se sledeče :
int array[][] =
{
  { 1 }, 
  { 1, 2 },
  { 1, 2 }
};

System.out.println(Arrays.deepToString(array));
//izpise [[1], [1, 2], [1, 2]]


Sploh ne rabim več, ker sem ugotovil, da je Java res mahjena na te tipe ;) . Mal mi gre to na živce, ker nimam takšne svobode |O npr. da bi vrnila funkcija ob uspehu nek string, ob neuspehu pa boolean ;( zmer javac teži ob takih primerih


Drugače moraš programirati, uporabljati izjeme in po možnosti vmesnike(interface) za posploševanje rezultatov in/ali parametrov.

Zgodovina sprememb…

  • spremenil: kopernik ()

sverde21 ::

Zgleda da je čas da se try catch naučim uporablat ;) Sicer me pa zdle mal motijo tile tipi, dokler se še ne navadim, potem pa bo šlo :)) .

P.S.: obstaja kak must know seznam funkcij ;) , ker Java ima v manualu zajeten kup funkcij :8)
<?php echo `w`; ?>

Karlos ::

Malo si poglej
tole
in
tole
Lepo razložene osnove jave, pa še kej več.
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."

sverde21 ::

Tnx :) sm jst tud najdu en linkec ;) ...

Fajn bi blo, če bi moderator dodal tele linke v temo z povezavami za javo :))
<?php echo `w`; ?>


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nakupovalni voziček, seje in update količine?

Oddelek: Izdelava spletišč
51235 (1047) phyro
»

[Java] Podatkovni tip

Oddelek: Programiranje
233526 (3178) piki12
»

Rekurzija v javi z ArrayList

Oddelek: Programiranje
81467 (1310) marjan_h
»

php array in path določenega keya:

Oddelek: Izdelava spletišč
151279 (1107) HardFu
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
223050 (3050) morbo

Več podobnih tem