发布网友
共3个回答
懂视网
java代码转php代码的方法:
方法一:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ArrayAssemble { @SuppressWarnings("unchecked") public static void main(String[] args) { String[] arrOfInt = { "红", "橙", "黄","黑" }; @SuppressWarnings("unused") String[] arrOfChar1 = { "L", "XL" }; @SuppressWarnings("unused") String[] arrOfChar2 = { "麻", "晴纶","看" }; String[] arrOfChar3 = { "奎", "康" }; String[] arrOfStr = { "lmy", "lyb", "mz", "yx" }; System.out.println("以下是组合后的数组"); //Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] {arrOfInt, arrOfChar1, arrOfChar2, arrOfChar3,arrOfStr }); Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] { arrOfChar1,arrOfChar2, arrOfChar3 }); //Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] { arrOfChar1,arrOfChar2 }); int i = 0; for (Object[] objArrays : objectsArrays) { i++; System.out.println(i + "=" + Arrays.toString(objArrays)); } }
方法一的辅助方法:将一个数组类型或对象类型的List与数组组合,并返回List
@SuppressWarnings("unchecked") public static List assembleArrayToList(List aList, Object[] array) { List arrList = new ArrayList(); // 遍历aList,将array与aList进行组合 for (int i = 0; i < aList.size(); i++) { Object obj = aList.get(i); // 检查aList的元素是否是数组类型的,如果不是,则直接产生组合列表 if (obj instanceof Object[]) { Object[] listArr = (Object[]) obj; // 对数组类型的aList元素与array进行组合 for (int k = 0; k < array.length; k++) { Object[] newListArr = new Object[listArr.length + 1]; for (int j = 0; j < listArr.length; j++) { newListArr[j] = listArr[j]; } newListArr[listArr.length] = array[k]; arrList.add(newListArr); } } else { // 对非数组类型的aList元素与array进行组合 for (int j = 0; j < array.length; j++) { Object[] arrObj = { aList.get(i), array[j] }; arrList.add(arrObj); } } } return arrList; }
方法二:使用二维数组参数方法返回组合的二维数组类型,并使用了递归
@SuppressWarnings("unchecked") public static Object[][] assembleArraysToPlanerArray(Object[][] objectArrays) { if (objectArrays.length == 2) { Object[] assembledArray = objectArrays[0]; Object[] array = objectArrays[1]; return assembleArrayToArray(assembledArray, array); } else if (objectArrays.length <= 1) { return objectArrays; } else { Object[] objArray = objectArrays[objectArrays.length - 1]; objectArrays = Arrays.copyOf(objectArrays, objectArrays.length - 1); return assembleArrayToArray(assembleArraysToPlanerArray(objectArrays), objArray); } }
方法二的辅助方法:将一个数组类型或二维数组类型与数组组合,并返回二维数组
public static Object[][] assembleArrayToArray(Object[] assembledArray,Object[] array) { int lenAssArray = assembledArray.length; int lenArray = array.length; Object[][] objArrays = new Object[lenAssArray * lenArray][]; for (int i = 0; i < lenAssArray; i++) { Object obj = assembledArray[i]; if (obj instanceof Object[]) { Object[] objArr = (Object[]) obj; int lenObjArr = objArr.length; for (int k = 0; k < lenArray; k++) { // 复制objArr数组到newListArr数组,并将其长度加一 Object[] newListArr = Arrays.copyOf(objArr, lenObjArr + 1); // 将array数组的第k+1元素赋值给newListArr数组最后的元素,并将newListArr赋值给objArrays数组的第k+1个元素 newListArr[lenObjArr] = array[k]; objArrays[lenArray * i + k] = newListArr; } } else { for (int j = 0; j < lenArray; j++) { Object[] newObjArray = { obj, array[j] }; objArrays[lenArray * i + j] = newObjArray; } } } return objArrays; } }
相关学习推荐:PHP编程从入门到精通
热心网友
public class Main{
public function __construct()
{
// 如果是实例运行,添加此方法,创建即可运行
}
public static function main(){
for ($i=0;$i <10;$i++){
$rand = mt_rand(0, 51);
echo $rand,PHP_EOL;
}
}
}
热心网友
java:
1、用hashmap存储元素,键值对方式。
Map<String, String> hashMap = new HashMap<String, String>(){
{
put("appid", "123");
put("apikey", "456");
put("secretKey", "7");
put("timestamp", "当前UNIX 时间戳,秒数,java中获取");
}
};
2、java中可以通过Timestamp获得UNIX 时间戳。
3、然后对hashmap进行升序排序。
4、然后写一个方法遍历hashmap,拼接成字符串格式为apikey=456&appid=123&secretkey=7×tamp=13379498
然后对该字符串进行encoded编码,输出格式为apikey=456&appid=123&secretkey=7×tamp=13379498
5、通过java中HMAC-SHA1算法加密该字符串,$secretKey为安全密钥。
6、再通过base_encode加密第5步产生的字符串。这是最终sig结果。