用戶要求界面顯示要根據用戶的輸入格式顯示,於是用了<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>標籤,才能顯示用戶預定義內容
未加解析代碼前:
加了解析代碼後: