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

 

用户要求界面显示要根据用户的输入格式显示,于是用了<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>标签,才能显示用户预定义内容

 

未加解析代码前:

 


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

 

加了解析代码后:

 


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