黑马程序员技术交流社区

标题: 求助!横排文字转成竖排文字! [打印本页]

作者: smhjx2006    时间: 2013-6-7 10:58
标题: 求助!横排文字转成竖排文字!
/**
*此程序实现了将文字竖排,但是如果文字中出现了标点符号,
*就会出现无法对齐的现象,请帮助解决!
*/

import java.util.*;
class  ValignDemo
{
       public static void main(String[] args)
       {
              Scanner console = new Scanner(System.in);
              System.out.println("请输入一行文字:");
              String str = console.nextLine();
              System.out.println("请输入行数:");
              int size = console.nextInt();
              System.out.println(valign(str,size));
       }
       //valign方法将输入的一行文字,按照输入的行数显示
       public static String valign(String str,int size)
       {
              int rows = size;//rows:行数
              int cols = str.length()/size;//cols:列数,但是"/"是取整数,不满一列的都不算,所以假设能整除
              if(str.length()%size!=0)//如果不能整除,说明有非满列的情况,所以要"+1"
              {
                     cols++;
              }
              char[] chs = new char[cols*rows];//定义字符数字
              int idx = 0;
              for(int i = cols-1;i>=0;i--)
              {
                     for(int j = 0;j< rows;j++)
                     {
                            if(idx == str.length())
                            {
                                   chs[j*cols+i]='~';
                            }
                            else
                            {
                                   chs[j*cols+i] = str.charAt(idx++);
                            }
                     }
              }
              String s = "";
              for(int i=0;i<chs.length;i++)
              {
                     s+=chs[i];
                     if((i+1)%cols==0)
                     {
                            s+='\n';
                     }
              }
              return s;
       }
}

作者: 袁梦希    时间: 2013-6-9 15:27
牛人   等待大神回答




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2