Java中的PHP函数

Java中的PHP函数,java,php,Java,Php,我正在尝试将PHP脚本转换为Java。 但不知怎么的,我没有让它工作 <?php $karten = array(12, 10, 8, 14, 9, 11, 13); for ($i = 1; $i <= count($karten); $i++) { print_r($karten); echo '<br>'; if ($karten[$i] > $Karten[$i - 1]) { for ($a = 0; $a &l

我正在尝试将PHP脚本转换为Java。 但不知怎么的,我没有让它工作

<?php

$karten = array(12, 10, 8, 14, 9, 11, 13);

for ($i = 1; $i <= count($karten); $i++) {
    print_r($karten);
    echo '<br>';
    if ($karten[$i] > $Karten[$i - 1]) {
        for ($a = 0; $a < count($karten); $a++) {
            if ($karten[$a] > $karten[$i]) {
                //Karten vorne dran setzen
                $karte = $karten[$i];
                unset($karten[$i]);
                array_splice($karten, $a, 0, array($karte));
                break;
            }
        }
    }
}

?>
algorithm.java:

import java.util.*;

public class KartenAlgo {

    public int[] sortiereKarten(int[] array) {

        int[] returnArr = new int[array.length];

        for (int i = 1; i < array.length; i++) {
            if (array[i] > array[i - 1]) {
                for (int a = 0; a < array.length; a++) {
                    if (array[a] > array[i]) {
                        int karte = array[i];
                        array = this.unset(array, i);
                        array = this.array_insert(array, a, karte);
                        break;
                    }
                }
            }
        }

        return returnArr;
    }

    private int[] unset(int[] array, int index) {
        int[] returnArr = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            if (i != index) {
                if (i < index) {
                    returnArr[i] = array[i];
                } else if (i == array.length - 1) {
                    returnArr[i] = -1;
                } else {
                    returnArr[i] = array[i - 1];
                }
            }
        }

        return returnArr;
    }

    private int[] array_insert(int[] array, int pos, int insert) {
        int[] returnArr = new int[array.length];

        for (int i = 0; i < returnArr.length; i++) {
            if (i < pos) {
                returnArr[i] = array[i];
            } else if (i == pos) {
                returnArr[i] = insert;
            } else {
                returnArr[i] = array[i - 1];
            }
        }

        System.out.println(Arrays.toString(array));

        return returnArr;
    }
}
import java.util.*;
公共级卡顿阿尔戈{
公共int[]sortiereKarten(int[]数组){
int[]returnArr=newint[array.length];
for(int i=1;i数组[i-1]){
for(int a=0;a数组[i]){
int karte=数组[i];
array=this.unset(数组,i);
数组=此.array\u插入(数组,a,karte);
打破
}
}
}
}
返回arr;
}
私有int[]未设置(int[]数组,int索引){
int[]returnArr=newint[array.length];
for(int i=0;i

我试图在Java中重建PHP的unset和array_splice的一个简单变体,但我无法让它工作。

在PHP unset中,工作方式如下: (取消设置移除/删除数组中的元素,您将获得更短的数组)

private static int[]unset(int[]arrIn,int index)
{
int i;
//新阵列较短
int[]arrOut=新int[arrIn.length-1];
//复制元素“之前”arrIn[索引]
对于(i=0;i
数组\u insert将元素插入到数组中,您将获得更长的数组

private static int[] array_insert(int[] arrIn, int pos, int value) 
{   
    int i;

    // new array is longer
    int[] arrOut = new int[arrIn.length+1];

    // copy element "before" arrIn[pos]
    for(i = 0; i < pos ; i++) {
        arrOut[i] = arrIn[i];
    }

    // put element in arrOut[pos]
    arrOut[pos] = value;

    // copy element "from" arrIn[pos] "to" end of arrIn[]
    for(i = pos; i < arrIn.length ; i++) {
        arrOut[i+1] = arrIn[i];
    }

    return arrOut;
}
private static int[]数组_insert(int[]arrIn,int pos,int value)
{   
int i;
//新阵列更长
int[]arrOut=新int[arrIn.length+1];
//复制arrIn[pos]中“之前”的元素
对于(i=0;i
不使用的Java版本有多旧<代码>列表
是从Java 1.2开始存在的。我是Java新手,但不知怎么的,我就是没能让它工作D我是Java新手,我以为它不会被实现,D的问题在哪里?即使是PHP脚本也很满,甚至没有提到Java部分…@Mohammer我认为对你来说最好的方法是在尝试移植任何代码之前先学习Java。
private static int[] unset(int[] arrIn, int index) 
{
    int i;

    // new array is shorter
    int[] arrOut = new int[arrIn.length-1];

    // copy element "before" arrIn[index]
    for(i = 0; i < index ; i++) {
        arrOut[i] = arrIn[i];
    }

    // copy element "after" arrIn[index]
    for(i = index; i < arrOut.length ; i++) {
        arrOut[i] = arrIn[i+1];
    }

    return arrOut;
}
private static int[] array_insert(int[] arrIn, int pos, int value) 
{   
    int i;

    // new array is longer
    int[] arrOut = new int[arrIn.length+1];

    // copy element "before" arrIn[pos]
    for(i = 0; i < pos ; i++) {
        arrOut[i] = arrIn[i];
    }

    // put element in arrOut[pos]
    arrOut[pos] = value;

    // copy element "from" arrIn[pos] "to" end of arrIn[]
    for(i = pos; i < arrIn.length ; i++) {
        arrOut[i+1] = arrIn[i];
    }

    return arrOut;
}