对一段古文,进行逆序、断句,简繁转换,标点符号转换,根据设定的行列数输出为仿线装书的竖排格式,纯属个人爱好,也欢迎同好者一起交流。

        private void button4_Click(object sender, EventArgs e){richTextBox2.Text = "";richTextBox2.RightToLeft = RightToLeft.Yes;string strChange = jfChange(richTextBox1.Text.Trim(), "繁体");strChange = Regex.Replace(strChange, @"\s", "");               //去除原文中的空格,回车换行,制表符等//strChange.Replace("“", "﹃");strChange = Regex.Replace(strChange, ":“", "﹃");//strChange.Replace("”", "﹄");strChange = Regex.Replace(strChange, "”", "﹄");strChange = Regex.Replace(strChange, "《", "︽");strChange = Regex.Replace(strChange, "》", "︾");int totalChars = strChange.Length;                         //总的字符数int charsPerCol = Convert.ToInt32(numericUpDown1.Value);   //charsPerCol为每列字符数(含标点符号)int cols = Convert.ToInt32(numericUpDown2.Value);          //cols为竖排文本的列数int charsPerPage = charsPerCol * cols;char fullSpace = Microsoft.VisualBasic.Strings.ChrW(12288);             //半角空格是32,全角空格是12288if (totalChars <= charsPerPage){if (totalChars < charsPerPage){strChange = strChange.PadRight(charsPerPage, fullSpace);      //不足每页字数,用全角空格填充不足部分}string output = getwordsHtoV(strChange, charsPerCol, cols);richTextBox2.Text = output;}else{List<string> outputList = new List<string>();int outputPages = (totalChars % charsPerPage == 0) ? totalChars / charsPerPage : totalChars / charsPerPage + 1;    //判断出分页数if (totalChars < charsPerPage * outputPages){strChange = strChange.PadRight(charsPerPage * outputPages, fullSpace);                //如果字符数不足所有分页的字符数,用全角空格补齐}for (int i = 0; i < outputPages; i++){outputList.Add(strChange.Substring(i*charsPerPage, charsPerPage));}string output = string.Empty;foreach (string perPage in outputList){output += getwordsHtoV(perPage, charsPerCol, cols);}richTextBox2.Text = output;}}public string getwordsHtoV(string source,int charsPerCol,int cols){List<string> wordList = new List<string>();//char fullSpace = Microsoft.VisualBasic.Strings.ChrW(12288);             //半角空格是32,全角空格是12288string result = string.Empty;if (source.Length > charsPerCol * cols){result = string.Format("警告,待转换字符数{0}超出设定的行数{1}和列数{2}!",source.Length,charsPerCol,cols);}else{for (int i = 1; i <=cols; i++){              string cTemp = source.Substring(charsPerCol * (i - 1), charsPerCol);wordList.Add(cTemp);}wordList.Reverse();     //将List倒序,这样文字可以从右往左输出result = createHead(cols);result += System.Environment.NewLine;for (int i = 0; i < charsPerCol; i++){StringBuilder sb = new StringBuilder();foreach (string cTemp in wordList){sb.Append("│");sb.Append(cTemp.Substring(i, 1));}result+=sb.ToString() + "│"+System.Environment.NewLine; }result+= createFoot(cols);result+= System.Environment.NewLine;}return result;}

字符串处理,仿古书竖排版相关推荐

  1. 汉语拼音大全(竖排版)

    共收录411个: a ai an ang ao ba bai ban bang bao bei ben beng bi bian biao bie bin bing bo bu ba bai ban ...

  2. PS-文字如何竖排版

    单击文字输入工具"T"按钮,点住鼠标左键不要松手,会在"T"按钮的右边显示出其它形式的文字工具,拖动鼠标指向"直排文字"工具就可以了.

  3. 《Python程序设计开发宝典》全面上架(新书超低价优惠+转发积攒送书)

    活动详情 1.转发积攒赠书.自2017年8月18日起,至2017年8月21日结束,为期4天,连续4天转发本文到到微信朋友圈,积攒总数超过200个以上,2017年8月22日上午12点之前将朋友圈截图发送 ...

  4. python基础知识笔记简书_Python基础学习笔记

    Python貌似有点火热,上手还是比较简单的,自己找了个教程也偷偷的学习一下,扒了一下网上的图片和数据,感觉并不是很难呀(不过之前换电脑,代码丢了,有点可惜,不过网上教程一抓一大把,随便看看也能扒一些 ...

  5. Java最佳实践–字符串性能和精确字符串匹配

    在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. 此外,我们将提供我们自己的用 ...

  6. 字符串:你看的懂的KMP算法(带验证)

    前言 KMP算法可以说说许多学习算法的同学的第一道坎,要么是领会不到KMP算法的思想,要么是知道思想写不出代码,网上各种查找.关于算法的书籍上也都有KMP算法的实现,可为啥自己写不出来呢?博主看得大话 ...

  7. ECMAScript6 模版字符串

    三.模版字符串 JavaScript's strings have been fairly limited when compared to those in other languages. Tem ...

  8. 《高性能Linux服务器构建实战Ⅱ》一书纠错汇总(12月30日更新)

    以下是<高性能Linux服务器构建实战Ⅱ>一书的编写或者排版错误说明,如果发现有相关错误信息,我会陆续在这里发布出来,也希望大家能把自己发现的错误留言给我,谢谢读者们的支持!你们的支持是我 ...

  9. 哪些人会看作业指导书?作业指导书怎样才能发挥作用?

    一般人普遍人为,作业指导书就是给操作人员看的.其实不然,那么哪些人会看作业指导书?大致可以分为: 第一类:新到工作岗位的员工.其中包括新进员工和新转岗位的员工,他们都会在师傅或领班组长的带领指导下,先 ...

  10. 小红书文案怎么编辑制作?小红书上的文案怎么做的?

    其实我们平时翻看小红书上的文案就会发现,小红书文案本身具有极强的社交属性,不同于其他平台的文案,小红书文案还是有着自己本身的特点的,我们能从小红书文案中总结出一些规律来,按着这个规律写总归是没错的.小 ...

最新文章

  1. 让PyTorch训练速度更快,你需要掌握这17种方法
  2. Mac上搭建直播服务器Nginx+rtmp
  3. Javascript 中 apply、call、bind
  4. URAL 1635 Mnemonics and Palindromes
  5. 关于mvc、mvp和mvvm的理解
  6. [智能架构系列]什么是Buddy智能开发框架
  7. 一句python,一句R︱列表、元组、字典、数据类型、自定义模块导入(格式、去重)
  8. JavaScript入门之Canvas(一): 2D Context
  9. python shell 方向键不可用
  10. [python]python 动态调用模块类方法
  11. 全文检索(LuceneSolr)
  12. 去除DataTable重得记录(net 2.0,不支持Linq)
  13. Axure9修改汉化包解决”用例“中”匹配所有“异常的问题
  14. 知识图谱构建技术综述与实践
  15. iOS-调用系统的短信和发送邮件功能,实现短信分享邮件分享
  16. java文件上传判重姿势浅谈
  17. 注册商标流程需要材料
  18. 企业微信老是服务器异常,添加好友提示”操作异常”,企业微信需要养号吗?...
  19. 你是怎样毁掉自己的?
  20. SQL Server之创建数据库和表

热门文章

  1. 腾讯WeTestTesterHome深圳线下沙龙
  2. 小米出品——gRPC Name Resolver 原理及实践
  3. 【Python量化】使用机器学习预测股票交易信号
  4. 快速获取SAS数据集观测数
  5. AUTOSAR DCM
  6. 第十五届东北大学生编程大赛题解
  7. 按键精灵手机版_关于截屏一些方法
  8. Telemetry原理
  9. python 聚类 客户细分_【火炉炼AI】机器学习027-项目案例:用聚类算法建立客户细分模型...
  10. TK1刷机以及简单配置