解析用户输入的字符串,加入回车换行符
用户要求界面显示要根据用户的输入格式显示,于是用了<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>标签,才能显示用户预定义内容
未加解析代码前:
加了解析代码后: