`

解析用户输入的字符串,加入回车换行符

    博客分类:
  • java
 
阅读更多

 

用户要求界面显示要根据用户的输入格式显示,于是用了<pre>标签。用户看了效果后又反馈意见,

因为有的用户输入的行数太长而没有换行,就会导致页面撑得很开,很影响页面美观,要求如果用户输入太长要自动换行;

 

出于程序员的本能(想快点完成项目,能简单就简单,能不改就改),几经劝说用户无效后,只能按用户意见实现。

 

处理考虑到方案,使用样式style:white-space 都不能达到满意效果。(该意见为咨询网友所得)

于是只能通过编写代码处理用户输入的字符串,处理的过程,深入研究发现不难,而且通过动手,让我的字符串(String)知识与更加了解。还得谢谢用户,以后对于用户的要求,不再找借口推脱了。

 

处理方式见代码:

 

 

/**

* 解析字符串增加回车换行符

* @param str

* @return

*/

public static String parseStrAddEnterChar(String str, int len) {

if (str == null) {

return null;

}

if (str.trim().length() == 0) {

return "";

}

String[] arr = str.split("\r\n");//通过回车换行符分隔字符串

for (int i = 0; i < arr.length; i++) {

if (arr[i].length() > len) {

arr[i] = recursionStr(arr[i], len, "\r\n");

}

}

StringBuilder sbu = new StringBuilder();

for (int j = 0; j < arr.length; j++) {

sbu.append(arr[j]).append("\r\n");//用户预定义加了回车

}

return sbu.toString();

}

 

/**

* 递归函数

*/

public static String recursionStr(String str, int len, String inputStr) {

String returnStr = "";

if (str.length() > len) {

returnStr = str.substring(0, len);

String prexstr = str.substring(len, str.length());

if (prexstr.length() > len) {

returnStr = returnStr + inputStr + recursionStr(prexstr, len, inputStr);

} else {

returnStr = returnStr + inputStr + prexstr;

}

} else {

returnStr = str;

}

return returnStr;

}

后面显示内容时还是用配合<pre>标签,才能显示用户预定义内容

 

未加解析代码前:

 


 

加了解析代码后:

 


  • 大小: 44.2 KB
  • 大小: 42.3 KB
分享到:
评论

相关推荐

    freemarker语法完整版

    字符串 Freemarker代码 &lt;#switch being.size&gt; &lt;#case "small"&gt; This will be processed if it is small &lt;#break&gt; &lt;#case "medium"&gt; This will be processed if it is medium &lt;#break&gt; ...

    正则表达式

    例如,序列 "\n" 在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义: 正则表达式的直接量字符 字符 匹配 ________________________________ 字母数字...

    通讯调试工具,支持:串口通讯、串口代理、TCP、UDP、Telnet、Ping、TFtp等通讯测试

    \n 换行符(LF) 0AH/10 \r 回车符(CR) 0DH/13 \\ 反斜杠 5CH/92 \ddd 任意字符 1~3位十进制 \xhh 任意字符 1~2位十六进制 继续完善中,欢迎提出宝贵意见。 本软件版本:V1.25 作者:baohongjie@126.com

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * \n The newline (line feed) character ('\u000A') \n 换行符 ('\u000A') * \r The carriage-return character ('\u000D') \r 回车符 ('\u000D') * \f The form-feed character ('\u000C')...

    你必须知道的495个C语言问题

    4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息。这是什么意思? 作为函数参数的指针 4.8 我有个函数,它应该接受并初始化一个指针:voidf(int*ip){...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    安卓毕业设计a源码网站-FrontEnd-Note:填坑笔记

    遇到包含回车符↵的整串字符串,v-html不能完全正确解析,要么replace全局替换成换行符,要么用white-space:break-spaces, 十分好用。 2021 年 2月 25日 svg的viewBox、height、width属性渲染的时候就会计算好,如果...

    C#编程经验技巧宝典

    76 &lt;br&gt;0111 计算字符串中子字符串出现的次数 76 &lt;br&gt;0112 获得字符串中大写字母的个数 77 &lt;br&gt;0113 获得某字符在字符串中最后出现的位置 78 &lt;br&gt;0114 如何找出字符串中某一字符的所有位置 78...

    freemarker总结

    其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替&gt;会有更好的效果,因为 FreeMarker会把&gt;解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x&gt;y)&gt; ...

    racket-socket-server-client:通过套接字使用 TCP 连接的服务器和客户端,内置 Racket

    在每个线程内部,有另一个循环在阻塞读取语句之后运行,该语句在接收到返回换行符后返回一行,该语句将解析接收到的行并执行所需的操作。 一旦接收到“adios”字符串,就退出循环并关闭连接。 客户端比服务器简单得...

    C#微软培训资料

    3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量...

    最新Java面试宝典pdf版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试笔试资料大全

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    dartXmlParse:Dart代码示例

    实现了一个类,以基于定界符对提供的字符串进行标记化。 实现了对LicenseClassifier v2语料库的阅读 将要执行 Jaccard索引计算器确定可能的匹配项。 (这是通过仅匹配一组令牌并忽略顺序来完成的) 编辑距离...

Global site tag (gtag.js) - Google Analytics