Java输出竖排文字

Java输出竖排古典文字 NULL 博文链接:https://hnicypb.iteye.com/blog/293250 立即下载

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

╔ ═╦ ═╦ ═╦ ═╗
║不║皇║一║天║
║胜║图║入║下║
║人║霸║江║风║
║生║业║湖║云║
║一║谈║岁║出║
║场║笑║月║我║
║醉║中║催║辈║
╚ ═╩ ═╩ ═╩ ═╝


╔ ═╦ ═╦ ═╦ ═╦ ═╦ ═╗
║口║升║,║康║一║祝║
║常║职║学║,║年║大║
║开║加║有║万║里║家║
║。║薪║所║事║身║在║
║ ║,║成║如║体║新║
║ ║笑║,║意║健║的║
╚ ═╩ ═╩ ═╩ ═╩ ═╩ ═╝


/**
 * 将传入的字符组装成竖排签名
 */
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 ~   

}


案例分析|一篇文章带你看懂养鸡场智慧管理系统 养鸡场智慧管理系统是为了满足现代化养鸡业对精细化管理的需求而设计的一款专业软件。随着科技的发展和农业产业的升级,传统的手工记录和管理方式已无法满足高效、准确和实时的数据跟踪需求。本软件旨在通过集成各种功能模块,帮助养鸡场主实现从鸡苗孵化、饲养管理、饲料控制到销售结算等全链条的智能化操作。该系统的核心目标是提升养鸡场的运营效率和盈利能力,通过自动化数据处理,减少人工误差,节省时间和精力。例如,孵化报表和记录模块可以帮助管理者实时监控孵化过程,及时调整策略; 阅读详情

相关推荐

RTX 5090配Ubuntu 24.04踩坑记:手把手搞定OpenVLA-OFT环境(附版本避坑清单)

本文详细记录了在RTX 5090显卡和Ubuntu 24.04系统上部署OpenVLA-OFT环境的完整过程,包括驱动安装、CUDA配置、PyTorch版本选择等关键步骤。提供了经过验证的版本组合清单和常见错误解决方案,帮助开发者高效搭建AI开发环境。

weixin_30342209的博客 466

【2022-07-05】-发票默认打印方式是横版,客户需求是默认方式改为A4纵向打印

提取出来的图片和PDF大小不同,应该发票大小是固定的,所以不能使用这种方案。 结果 客户很满意。IText使用(超详解) itext 生成 PDF

Blog 1681

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6728

java的PDF纵横向打印

PDF默认是纵向打印的,通过rotate()来让其改变为横向打印,一般在打印A4 12*21纸以及发票的时候会用横向打印。横向打印时页面会出现行转列以及列转行的情况,因此在设置页面大小的时候一定要宽度设置的宽一些,表格的maxWidth设置在500到600之间就行了,不然会打印的表格就会不是太全或者很少。如果你是纵向打印,那么Rectangle设置页面大小就可以根据实际情况设置了。下面附...

960

别再死磕SPWM了!手把手教你用STM32实现SVPWM驱动PMSM电机(附代码)

本文详细介绍了如何使用STM32实现SVPWM驱动PMSM电机,对比传统SPWM方案,SVPWM在电压利用率、电流THD、转矩脉动和稳态温升等方面均有显著提升。通过克拉克变换优化、扇区快速判断和矢量作用时间补偿等核心算法,结合STM32硬件加速技巧,实现高效电机控制。附代码示例,助力开发者快速掌握SVPWM技术。

weixin_28733777的博客 274

国外无人机蜂群作战典型战例及发展趋势

参与袭击的无人机为简易组装的固定翼飞机,采用小排量活塞发动机和手机GPS通信模块零件,机翼为轻木加泡沫板混合结构,尾梁为铝合金方管,主要依靠胶带粘接,以上全部配件均可在商用市场买到,成本较低,可在短时间内装配完成。③战场纵深短、瞬时性强。蜂群作战的参战数量显著增加,这一方面得益于无人机技术的飞速发展使得廉价无人机可以大量生产和仿制,另一方面凭借迅速发展的投放和回收技术以及集群控制技术,使得无人机蜂群可在极短时间内实现编队饱和攻击,在快速消耗敌方高价值防空武器系统的同时,保证己方物资系统的突防概率。

renhongxia1的博客 2481

java使用itext填充pdf模板文字和图片,并使填充后的模板内容垂直水平居中

一、背景 由于业务需求,我需要将程序的部分数据生成PDF报告以供下载浏览 二、实现方式 设计一个pdf模板,可以通过pdf编辑工具编辑模板、市面上支持编辑表单的pdf编辑都可以,如Adobe Acrobat DC、万兴PDF、迅捷PDF等等 通过表单编辑设置表单单元格对应名,后续程序赋值用 可以设置文本水平居中(但目前的程序都不支持设置垂直居中,后续想要实现的话需要从程序下手) 设置好文本则可以开始编写程序赋值(核心代码) //创建A4大小的文档 Document document = ne

于采柳的博客 1万+

Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建

本文介绍Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建方法。

无线通信实验室 1万+

java文字竖排_Java输出竖排文字

输出竖排文字,可以作为签名档:╔ ═╦ ═╦ ═╦ ═╗║不║皇║一║天║║胜║图║入║下║║人║霸║江║风║║生║业║湖║云║║一║谈║岁║出║║场║笑║月║我║║醉║中║催║辈║╚ ═╩ ═╩ ═╩ ═╝╔ ═╦ ═╦ ═╦ ═╦ ═╦ ═╗║口║升║,║康║一║祝║║常║职║学║,║年║大║║开║加║有║万║里║家║║。║薪║所║事║身║在║║ ║,║成║如║体║新║║ ║笑║,║意║健║的...

weixin_39749501的博客 726

uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程及本地调试无需部署上线服务器就能直接调起微信登陆授权页面,手机移动端h5公众号页面利用微登录拿到用户数据!

uni-app,微信公众号,h5网页,uniapp网页端,手机端H5公众号页面,微信网页登陆,uniApp详细实现公众号的登录,微信授权第三方网站登录,流程及逻辑详细教程,OAuth2.0,公众号网页授权,微信网页授权通过code换取网页授权,redirect_url,参数错误,解决,报错,无法调起,如何申请测试公众号,微信公众平台测试号的申请与使用,获取用户openid手机号昵称头像,利用测试号实现本地调试微信登录授权,本地无法调试怎么办,测试公众号,在开发环境下怎么测试,用项目本地ip地址,微信公众号平

🏆 前端领域优质创作者 5063

YOLO26改进策略【YOLO和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。EfficientViM: Efficient Vision Mamba with Hidden State Mixer based State Space DualityEfficie

Limiiiing的博客 399

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

输出竖排文字,可以作为签名档:╔ ═╦ ═╦ ═╦ ═╗║不║皇║一║天║║胜║图║入║下║║人║霸║江║风║║生║业║湖║云║║一║谈║岁║出║║场║笑║月║我║║醉║中║催║辈║╚ ═╩ ═╩ ═╩ ═╝╔ ═╦ ═╦ ═╦ ═╦ ═╦ ═╗║口║升║,║康║一║祝║║常║职║学║,║年║大║║开║加║有║万║里║家║║。║薪║所║事║身║在║║ ║,║成║如║体║新║║ ║笑║,║意║健║的...

weixin_33236524的博客 1053

【网络与爬虫 61】移动端App爬虫终极指南:Android-iOS应用数据提取黑科技全解析

本文全面解析移动端App爬虫技术,涵盖Android和iOS两大平台的数据提取方法。从基础的网络抓包到高级的代码注入,从自动化测试框架到反调试技术绕过,为开发者提供移动端数据采集的完整解决方案和实战经验。

熵数实验室 3027

java版的竖排文字输出软件

前段时间看竖排文字挺流行的,就自己动手写了一个java版的,给自己用,现在拿出来和大家一起研究下!大家可以到这里下载,零资源分下载,不过要有csdn帐号才行界面预览:

saintonline 682

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

文字竖排

实现文字竖排    输入字符串:长江后浪退前浪,前浪死在沙滩上。    输出:沙前退长             滩浪前江             上死浪后             。在,浪package self.temp8; import java.util.*; public class VerticalType { public static void main(String

番薯IT的专栏 746

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 兰顿蚂蚁
下一篇: 有趣的注释
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值