输出竖排文字,可以作为签名档:

╔ ═╦ ═╦ ═╦ ═╗

║不║皇║一║天║

║胜║图║入║下║

║人║霸║江║风║

║生║业║湖║云║

║一║谈║岁║出║

║场║笑║月║我║

║醉║中║催║辈║

╚ ═╩ ═╩ ═╩ ═╝

╔ ═╦ ═╦ ═╦ ═╦ ═╦ ═╗

║口║升║,║康║一║祝║

║常║职║学║,║年║大║

║开║加║有║万║里║家║

║。║薪║所║事║身║在║

║ ║,║成║如║体║新║

║ ║笑║,║意║健║的║

╚ ═╩ ═╩ ═╩ ═╩ ═╩ ═╝

/**

* 将传入的字符组装成竖排签名

*/

public class AssembleWord {

private static final char[][] style = {"┏┳┓┣╋┫┗┻┛━┃┃".toCharArray(),

"╒╤╕╞╪╡╘╧╛═││".toCharArray(),

"╔╦╗╠╬╣╚╩╝═║║".toCharArray(),

"╔╤╗╠╬╣╚╧╝═║│".toCharArray()

}; //最后一个为内部竖线,倒数第二个外部竖线

private static final char[] skeleton = style[2]; //样式

public static void main(String[] args) {

String str = "天下风云出我辈一入江湖岁月催皇图霸业谈笑中不胜人生一场醉";

String st = "祝大家在新的一年里身体健康,万事如意,学有所成,升职加薪,笑口常开。";

System.out.println(assemble(str, 7));

System.out.println(assemble(st, 6));

}

/**

* 根据字数转化成竖排签名

* @param text 待转化的句子

* @param columnWord 每列句子的字数

* @return

*/

public static String assemble(String text, int columnWord){

int textLen = text.length(); //原文本的长度

int column = textLen%columnWord == 0 ? textLen/columnWord : (textLen/columnWord + 1);

column = 2*column + 1; //总的列数,画示意图即知

int row = columnWord + 2; //总行数

char[][] arr = new char[row][column];

//填充边框

for(int i = 0; i < row; i++){

for(int j = 0; j < column; j++){

if(i == 0 && j == 0){ //左上角

arr[i][j] = skeleton[0];

}else if (i == 0 && j == column-1){ //右上角

arr[i][j] = skeleton[2];

}else if (i == row-1 && j == 0){ //左下角

arr[i][j] = skeleton[6];

}else if (i == row-1 && j == column-1){ //右下角

arr[i][j] = skeleton[8];

}else if (j == 0 || j == column-1){ //左右两侧

arr[i][j] = skeleton[10];

}else if ((i == 0 || i == row-1) && j%2 == 1){ //有文字的列对应的顶部底部

arr[i][j] = skeleton[9];

}else if ((i == 0 || i == row-1) && j%2 == 0){ //无文字的列对应的顶部

arr[i][j] = i == 0 ? skeleton[1] : skeleton[7];

}else if (j%2 == 0){ //无文字的列内部

arr[i][j] = skeleton[11];

}

}

}

//填充文本

char c ;//用于填充的字符

int k = 0; //用于遍历字符串

for(int j = column-2; j > 0; j -= 2){

for(int i = 1; i <= row-2; i++){

if (k < text.length()){

c = text.charAt(k++);

}else{

c = ' ';//无文字则填充全角空格

}

arr[i][j] = halfToFull(c);

}

}

//组装成字符串

StringBuilder sb = new StringBuilder();

for(int i = 0; i < row; i++){

for(int j = 0; j < column; j++){

if(arr[i][j] == skeleton[9]) sb.append(" "); //如果要在DOS下运行,必须把这一行注释掉。

sb.append(arr[i][j]);

}

sb.append("\n");

}

return sb.toString();

}

/**

* 半角字符转化成全角

* 仅转化ASCII码表中33~126号字符

* @param c 待转化字符

* @return

*/

private static char halfToFull(char c){

if(c >= 33 && c <= 126){ //经测试可以用此方法把ASCII码表中的这几个字符转化为全角

return (char)(c + 'a' - 'a');

}

return c;

}

// 附33~126的ASCII码表

// 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 *

// 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4

// 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 >

// 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H

// 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R

// 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \

// 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f

// 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p

// 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z

// 123 { 124 | 125 } 126 ~

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

java文字竖排_Java输出竖排文字相关推荐

  1. java如何数字竖排输出_Java输出竖排文字

    输出竖排文字,可以作为签名档: ╔ ═╦ ═╦ ═╦ ═╗ ║不║皇║一║天║ ║胜║图║入║下║ ║人║霸║江║风║ ║生║业║湖║云║ ║一║谈║岁║出║ ║场║笑║月║我║ ║醉║中║催║辈║ ...

  2. java 十六进制浮点_Java十六进制浮点文字

    java 十六进制浮点 我如何遇到十六进制浮点数 我正在Java :: Geci中开发一种新功能,以减少代码重新格式化的可能性. 如果重新格式化,当前版本的代码将覆盖原本相同的代码. 这很烦人,因为按 ...

  3. python文字转语音输出_Python文字转语音

    姓名:刘强 [嵌牛导读] 在搭建专家系统时,推理机运算往往采用语言变量,那么如何将推理的结果反映给现实世界的人呢?本文介绍了如何使用python将文字转化成语音输出 [嵌牛鼻子] Python   文 ...

  4. java金字塔显示_Java输出正反金字塔循环

    package com.javase.demo; import java.util.Scanner; /** * 金字塔 * @author Mr.Zhang * */ public class Py ...

  5. java 输出流 文件_Java输出文件到本地(输出流)

    package cn.buaa; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; im ...

  6. java print快捷键_java输出语句快捷键是什么

    有一位志同道合的朋友给我留言说,MyBatis-Plus的逆向工程跟接口继承BaseMapper有什么区别,我想了想,怎么解释都不合适,最后决定出此文章进行讲解.环境搭建 首先创建一张数据库 2021 ...

  7. Java输出竖排文字

    输出竖排文字,可以作为签名档: ╔ ═╦ ═╦ ═╦ ═╗ ║不║皇║一║天║ ║胜║图║入║下║ ║人║霸║江║风║ ║生║业║湖║云║ ║一║谈║岁║出║ ║场║笑║月║我║ ║醉║中║催║辈║ ...

  8. java输出文字_Java图形代码:输出文字,输出字符文字

    Java图形代码:输出文字,输出字符文字,本例由烈火网小编转载,由于水平有限,因此不能给出详细注释,请看下面完成的图形演示: 代码片段: Copy to Clipboard 引用的内容:[www.ve ...

  9. 基于JavaScript技术的横排文字转古书式竖排工具

    基于JavaScript技术的横排文字转古书式竖排工具 此工具可以把普通横排文字转换为古典的竖排由右至左的方式显示,并且增加适当的线标,方便读者阅读.您可以在论坛.博客发言之前用这个工具把要发表的文章 ...

  10. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果

    JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...

最新文章

  1. linux mysql 操作命令_linux的mysql操作命令
  2. 服务器修改数据库值,服务器上怎么修改数据库内存
  3. 允許Linux的snmp服務被查詢
  4. 兰州交通大学计算机科学与技术学院,兰州交通大学
  5. jquery-等待加载-显示隐藏-遍历
  6. Python精通-Python字符串格式化操作
  7. java 显示锁_Java 实现一个自己的显式锁Lock(有超时功能)
  8. Delphi 下用Windows API 创建窗体
  9. C#:JObject、JArray、JProperty、JValue作用
  10. html标题用什么字母,HTML标题有什么作用?
  11. Lucene的分析过程
  12. 怎么拷贝计算机桌面,电脑怎么拷贝软件
  13. 服装制图软件测试初学者,服装行业版软件测试文案.ppt
  14. 关于ubuntu系统的scp服务提示Permission denied
  15. 相邻图片之间有空白间隙的问题解决
  16. 留言板(php+数据库)
  17. 【web前端】移动端控制台插件,手机端页面查看相关页面控制台信息
  18. Github上的英文解释
  19. win10输入法不显示候选词框解决方法
  20. matlab中求矩阵A的特征向量,matlab已知特征值,特征向量,求那个矩阵怎么做?...

热门文章

  1. 基于CBO的SQL优化和Oracle实例优化
  2. 如何高效录制和分享教学视频?我尝试了芦笋
  3. 【pytorch基础学习笔记】零基础速成,了解pytorch基础语法和应用
  4. java的小于等于符号怎么打_「小于符号」mybatis的一些特殊符号标识(大于,小于,等于,不等于) - seo实验室...
  5. 论文格式问题解决,标题前的黑点去除,分页后产生的空格消除。
  6. 在windows系统调试ydlidar详细记录(物联网机器人方向)
  7. Vue看板娘教程详细版
  8. 电商数据分析师面试题分享
  9. 【GD32F303开发之串口通信】
  10. HDU 1277全文检索(字典树)