字符串之字形排列

Posted dongma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串之字形排列相关的知识,希望对你有一定的参考价值。

 

import java.util.*;
public class Client {
    public static void main(String[] args) {
        String str = "abcdefghijk";
        char[][] chars = strArr(str, 4);
        for (char[] ints : chars) {
            System.out.println(Arrays.toString(ints));
        }
    }

    /**
     * 字符串排列
     */
    static char[][] strArr(String str,int col) {
        char[] chars = str.toCharArray();
        int row = (chars.length - col) / (col - 1) + 2 ;
        char[][] arr = new char[row][col];

        int rowIndex = 0;
        int colIndex = 0;
        int charIndx = 0;
        boolean isAsc = true;
        while (charIndx < chars.length){
            arr[rowIndex][colIndex] = chars[charIndx];
            charIndx++;
            if(isAsc){
                colIndex++;
            }else {
                colIndex--;
            }
            if(isAsc && (colIndex >= col)){
                isAsc = false;
                colIndex -= 2;
                rowIndex++;
            }else if(!isAsc && (colIndex < 0)){
                isAsc = true;
                colIndex += 2;
                rowIndex++;
            }
        }
        return arr;
    }

}

 

结果

[a, b, c, d]
[g, f, e,  ]
[ , h, i, j]
[ ,  , k,  ]

 

以上是关于字符串之字形排列的主要内容,如果未能解决你的问题,请参考以下文章

iOS文字排版概念(字符和字形)

LeetCode6 Z字形排列

Leetcode 6. Z 字形变换-中等(图)

6.ZigZag Conversion

6.ZigZag Conversion

将字符串中的字符按Z字形排列,按行输出