竖排文本:
package demo;
import java.util.Scanner;
public class VAlign {
/*竖排文本:
*(横排转竖排=一维转二维数组)
* 思路:
* 1.从横排字符串的索引号入手(看做一维),画出竖排表格得出二维索引号,找出某个字符一维索引号与其所在二维之间的联系;
* 2.根据联系,创建一维数组,建立外层,内层循环,
* 3.将数组内字符连接起来,逢n折行,输出.
*/
public static void main(String[] args) {
Scanner console=new Scanner(System.in);
System.out.println("请输入汉字:");
String str=console.next();//控制台:字符串型
String s = valign(str, 5);// valign垂直对齐,每列5个字符,即行数
System.out.println(s);
}
/**
* 文字竖排
*
* @param str
* 一个横排文本
* @param size
* 竖排文本每列文字数量
* @return
*/
public static String valign(String str, int size) {
int rows = size;// 行数
int cols = str.length() / size;// 列数
if (str.length() % size != 0) {// 不整除时,列数++
cols++;
}
char[] chs = new char[rows * cols];// 创建数组,长度为行列之积
int idx = 0;
for (int i = co