java中如何写一个return,把数组中的数进行的数字10变成0并移位到数组的末尾

例子如图... 例子如图 展开
 我来答
梦回城唐
2016-11-24 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:66%
帮助的人:28.5万
展开全部

public static int[] convert10to0(int[] array) {

        if (array != null) {

            int mark_index = 0;

            boolean replace = false;

            for (int i = 0; i < array.length; i++) {

                if (array[i] == 10) {

                    if (!replace) {

                        mark_index = i;

                        replace = true;

                    }

                    array[i] = 0;

                } else if (array[i] != 10 && replace) {

                    array[mark_index] = array[i];

                    array[i] = 0;

                    mark_index++;

                }

            }

        }

        return array;

    }

追问

请问移位呢?

main是这样的

能简单点用for吗?

追答

移位是用mark_index实现的。它标记了数组中下标最小的一个由10替换成0的下标。

只要在循环的过程中,产生了10替换0的动作,replace 置为true。

接下来循环时找到的非10的数字就会放置到mark_index位置,同时mark_index向后移动移位,当前位置变成0。

你可以运行一下,没有问题的。

public class Test {

    public static void main(String args[]){

        int array1[]={1,10,10,2};

        int array2[]={10,2,10,1,99,10,1,10,10,2};

        Test.printArray(Test.convert10to0(array1));

        System.out.println();

        Test.printArray(Test.convert10to0(array2));

    }

    public static void printArray(int[] array) {

        if (array != null) {

            for (int obj : array) {

                System.out.print(obj + " ");

            }

        } else {

            System.out.println("数组为空");

        }

    }

    public static int[] convert10to0(int[] array) {

       //之前的代码,因为太长,这里粘贴超出回答能支持的最长量了

    }

}


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式