ZigzagConvert

public class ZigzagConvert {
      public static String convert(String s, int nRows) {
            int len = s.length();
            if (len == 0 || nRows < 2) return s;
            
            String ret = "";//赋值可以定义ret=null;但是拼接字符串的时候不行,只能定义""
            int lag = 2*nRows - 2; //循环周期
            for (int i = 0; i < nRows; i++) {
                for (int j = i; j < len; j += lag)
                {
                    ret += s.charAt(j);
                    
                    //非首行和末行时还要加一个,中间奇列的字符序号相当于是偶数列的下面的字符个数加上偶数列字符序号
                    if (i > 0 && i < nRows-1) {
                        int t = j + 2*(nRows-1-i);
                        if (t < len) 
                        {
                            ret += s.charAt(t);
                        }
                    }
                }
            }
            return ret;
        }
    public static void main(String[] args)
    {
        String s = "abcdefg";
        String s1 = convert(s, 3);
        System.out.println(s1);
        
    }
}
原文地址:https://www.cnblogs.com/masterlibin/p/5522531.html