其实多维数组转化为字符串和二维数组转化为字符串大差不差,具体就自己总结规律吧!
直接上代码
import java.util.ArrayList;
import java.util.Random;
/**
* @version:1.0
* @since 2010年11月21日22:58:43
* @<p>快速生成数独算法</p>
* @param args
*/
public class SudoKu {
/**
* <p>
* 打印二维数组,数独矩阵
* </p>
*/
public static void printArray(int a[][]) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
System.out.print(" " + a[i][j]);
if (0 == ((j + 1) % 3)) {//为了有层次感输出空格
System.out.print(" ");
}
}
System.out.println();
if (0 == ((i + 1) % 3)) {//为了有层次感输出换行
System.out.println();
}
}
}
//二维数组转换成一个字符串
static String sudo_tostring(int[][] sudo) {
StringBuilder buf = new StringBuilder();// 字符串生成器对象(类似字符串缓冲流)
for (int i = 0; i < sudo.length; i++) {
for (int j = 0; j < sudo[i].length; j++) {
buf.append(sudo[i][j]);
}
}
System.out.println("二维数组转换成一个字符串");
System.out.println(buf.toString());// 把字符串生成器转化为字符串
return buf.toString();
}
/** 把字符串转换成一个一维数组 */
static int[] fromPuzzleString(String string) {
int[] puz = new int[string.length()];
for (int i = 0; i < puz.length; i++) {
puz[i] = string.charAt(i) - '0';
}
System.out.println("把字符串转换成一个一维数组");
for (int i = 0; i < puz.length; i++) {
System.out.print(puz[i]);
}
System.out.println();
return puz;
}
/** 一维数组转换程一个字符串 */
static private String toPuzzleString(int[] puz) {
StringBuilder buf = new StringBuilder();
for (int element : puz) {
buf.append(element);
}
System.out.println("一维数组转换程一个字符串");
System.out.println(buf.toString());
return buf.toString();
}
/**
* main函数组织了程序的逻辑,
* main函数
* 1.定义一个二维数组
* 2.输出二维数组
* 3.二维数组转化为字符串
* 4.字符串转化为一维数组
* 5.一维数组转化为字符串
* @param args
*/
public static void main(String[] args) {
int seedArray[][] = { { 9, 7, 8, 3, 1, 2, 6, 4, 5 },
{ 3, 1, 2, 6, 4, 5, 9, 7, 8 }, { 6, 4, 5, 9, 7, 8, 3, 1, 2 },
{ 7, 8, 9, 1, 2, 3, 4, 5, 6 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 4, 5, 6, 7, 8, 9, 1, 2, 3 }, { 8, 9, 7, 2, 3, 1, 5, 6, 4 },
{ 2, 3, 1, 5, 6, 4, 8, 9, 7 }, { 5, 6, 4, 8, 9, 7, 2, 3, 1 } };//1.定义一个二维数组
System.out.println("原始的二维数组:");
SudoKu.printArray(seedArray);// 2.输出二维数组
String sudo_tostring = sudo_tostring(seedArray);//3.二维数组转化为字符串
int a[] = fromPuzzleString(sudo_tostring);// 4.字符串转化为一维数组
String b = toPuzzleString(a);//5.一维数组转化为字符串
}
}