Hi,
kann vielleicht jemand von euch neben PHP auch Java? Ich möchte nämlich eine Funktionen in PHP aus Java übersetzen, die einen String codiert, dafür muss ich eine weitere Funktion und zwei komplette Klassen übersetzen, glaube ich zu mindest. Habe dabei richtig üble Probleme, weshalb ich nun einfach mal drauf los poste:
Java:
Und hier mein vollkommen verbuggter Ansatz:
kann vielleicht jemand von euch neben PHP auch Java? Ich möchte nämlich eine Funktionen in PHP aus Java übersetzen, die einen String codiert, dafür muss ich eine weitere Funktion und zwei komplette Klassen übersetzen, glaube ich zu mindest. Habe dabei richtig üble Probleme, weshalb ich nun einfach mal drauf los poste:
Java:
Code:
private int[] a(long paramLong, int paramInt) { int[] arrayOfInt = new int[paramInt]; Random localRandom = new Random(paramLong); for (int i1 = 0; i1 < paramInt; ++i1) arrayOfInt[i1] = (int)(localRandom.nextDouble() * paramInt); return arrayOfInt; } private String jdMethod_if(long paramLong, String paramString) { int i1 = paramString.length(); char[] arrayOfChar = new char[paramString.length()]; int[] arrayOfInt = a(paramLong, i1); if (paramString.length() == 0) return ""; paramString.getChars(0, paramString.length(), arrayOfChar, 0); int i2 = arrayOfChar[arrayOfInt[0]]; for (int i3 = 0; i3 <= i1 - 2; ++i3) arrayOfChar[arrayOfInt[i3]] = arrayOfChar[arrayOfInt[(i3 + 1)]]; arrayOfChar[arrayOfInt[(i1 - 1)]] = i2; return new String(arrayOfChar); }
PHP-Code:
<?php
class jAtomic
{
var $value;
function AtomicLong($initialValue)
{
$this->value = $initialValue;
}
function get()
{
return $this->value;
}
function set($newValue)
{
$this->value = $newValue;
}
//Hier tuts schon richtig weh...
function compareAndSet($expect, $update)
{
echo("e: $expect, u: $update\n");
if($expect == $update)
{
return true;
}
else
{
$this->value = $update;
return false;
}
}
}
class jRandom
{
var $serialVersionUID = 3905348978240129619;
var $multiplier = 0x5DEECE66D;
var $addend = 0xB;
var $mask = null;
function Random($seed)
{
$this->seed = new jAtomic;
$this->seed->AtomicLong(0);
$this->setSeed($seed);
}
function setSeed($seed)
{
$this->mask = (1 << 48) - 1;
$seed = ($seed ^ $multiplier) & $this->mask;
$this->seed->set($seed);
}
function next($bits)
{
$this->mask = (1 << 48) - 1;
do
{
$oldseed = $this->seed->get();
$nextseed = ($oldseed * $this->multiplier + $this->addend) & $this->mask;
} while(!$this->seed->compareAndSet($oldseed, $nextseed));
return $nextseed >> (48 - $bits);
}
function nextDouble()
{
return ($this->next(26) << 27) + $this->next(27);
}
}
function a($paramLong, $paramInt)
{
$tInt = null;
$localRandom = new jRandom;
$localRandom->Random($paramLong);
for($iL = 0; $iL < $paramInt; ++$iL)
$tInt[$iL] = ($localRandom->nextDouble() * $paramInt);
return $tInt;
}
function jdMethod_if($paramLong, $paramString)
{
$iL = strlen($paramString);
$tAoC = null;
$tAoI = a($paramLong, $iL);
if(strlen($paramString) == 0)
return "";
$tAoC = $paramString;
$i2 = $tAoC[$tAoI[0]];
for($i3 = 0; $i3 <= $iL - 2; ++$i3)
$tAoC[$tAoI[$i3]] = $tAoC[$tAoI[($i3 + 1)]];
$tAoC[$tAoI[($iL - 1)]] = $i2;
return $tAoC;
}
echo jdMethod_if(1147, "Dies ist ein Test!");
?>
Kommentar