flhs笔试题-回家上机实践

时间:2023-12-04 10:21:50

这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入

package org.flhs;

import com.google.common.base.Strings;

/**
* Created with IntelliJ IDEA.
* User: cutter.li
* Date: 14-3-7
* Time: 下午3:10
* To change this template use File | Settings | File Templates.
*/
public class FLHSTest {

public static void main(String[] args) {

//        changePosition("iloveyou", 5);

Object[] objArray= insertObjArrayInPosition(new Object[]{"a","b","hello"},new Object[]{"fuck","you"},3);

printArray(objArray);

}

private static void printArray(Object[] objArray) {
        if(null!=objArray&&objArray.length>0)
        {
            for(Object obj:objArray)
            {
                System.out.print(obj+" , ");
            }
        }
    }

//对指定位置前后的字符串的内容进行调换
    public static void changePosition(String str, int position) {
        String res = "";
        if (Strings.isNullOrEmpty(str)) {
            res = "改变的字符串为空";
        } else {
            int len = str.length();

if (position <= 0 || position >= len) {
                res = str;
            } else {
                String preTxt = str.substring(0, position);
                String remainTxt = str.substring(position, str.length());
                res = remainTxt + preTxt;

}
        }
        System.out.println(res);
    }

//数组在指定位置的插入
    public static Object[] insertObjArrayInPosition(Object[] dest, Object[] source, int position) {
        if (null == dest) {
            return source;
        }

if (null == source) {
            return dest;
        }
        int destSize = dest.length;
        int sourceSize = source.length;
        Object[] resObjArray = new Object[destSize + sourceSize];

if (position <= 0) {
            System.arraycopy(source, 0,  resObjArray, 0, sourceSize);
            System.arraycopy(dest , 0, resObjArray, sourceSize, destSize);
        } else if (position > dest.length) {
            System.arraycopy(dest, 0,  resObjArray, 0, destSize);
            System.arraycopy(source, 0,  resObjArray, destSize, sourceSize);
        } else {
            System.arraycopy(dest, 0, resObjArray, 0, position);
            System.arraycopy(source, 0,  resObjArray, position, sourceSize);
            System.arraycopy(dest, position,  resObjArray, position+sourceSize, destSize - position);

}
        return resObjArray;
    }

}