解析用戶輸入的字符串,加入回車換行符

 

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

 

未加解析代碼前:

 


 

加了解析代碼後:

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章