1. 程式人生 > >嘗試解決Java多行字串的編輯問題

嘗試解決Java多行字串的編輯問題

很多時候,我們都需要在程式碼中書寫大段或者需要轉義的字串,常見的情形有: SQL, 正則表示式, XML/HTML, 引用一大段文字 等等.  

    不幸的是, 到目前為止, Java都沒有提供一種在語言級別對多行字串的支援。在書寫這些字串, 不得不插入大量的轉義符: \\ \r\n \", 他們之間還需要用+ 連線起來。 書寫起來麻煩,理解起來也很困難, 特別是像正則表示式本身就包含很多需要轉義的字元。據說在Java7的時候也曾經有人建議使用""" 來實現, 後來不知道是什麼原因,最後不了了之。

    雖然在語言級別我們暫時還沒有辦法, 但是我們通過IDE編輯器,可以達到比較理想的效果。Eclipse外掛: 

Multiple-line syntax 的基本思路就是採用Javadoc來實現多行書寫,這樣可以不用破壞現有的Java語法結構,其大致原理:

  • 在儲存Java檔案時,將有特別標記的javadoc轉換為Java格式的字串,並對這段程式碼做特別標記

  • 在讀取Java檔案時,進行反向操作,將有特別標記的Java程式碼轉為 Javadoc

    這樣,在IDE下我們看到的就是乾淨的多行字串,並可以正常的編輯和儲存。 而實際的原始碼還是那些看起來很囉嗦的一堆轉義和連線程式碼。 不過沒有關係, 眼不見,心不煩!  只要可以正常執行,並輸出我們想要的內容, 一切就都OK了.

    例子截圖:


相關推薦

嘗試解決Java字串編輯問題

很多時候,我們都需要在程式碼中書寫大段或者需要轉義的字串,常見的情形有: SQL, 正則表示式, XML/HTML, 引用一大段文字 等等.       不幸的是, 到目前為止, Java都沒有

解決EditText編輯時在ScrollView中無法滾動的問題

這是一件很鬱悶的事,一個傻x給我找事,說我做的應用不好用,以為自己是傻逼產品經理嗎?管的事真不少。各種問題,各種向老大反應,連伺服器的端的問題都來找我,以為我是救世主啊,吐槽完了轉入正題。

MFC將edit編輯框內的字串,根據“\n”換符分割成個單行字串

程式碼功能:獲取到edit編輯框內的多行內容,並將其分割成多個單行字串 作者:weekdawn //獲取編輯框內容 UpdateData(TRUE); CString strEditStr;//編

Eclipse中 如何實現 同時編輯

可編輯 多行 鼠標 編輯 再次 clip width 技術 shift 在編輯的時候按下 SHIFT + ALT +A 之後 鼠標變為 + 號 選擇要同時編輯幾行 即可編輯(現在eclipse好像只能是編輯一塊地方 不能像vs那樣 任何地方可以同時編輯 這

解決TextView滑動與NestedScrollView等,滑動沖突,我的解決方案

rip max 解決 底部 e-mail ast sts end 謝謝 1.首先要明白,什麽時候回TextView處理滑動,什麽時候不處理滑動 1.1往上滑動,到達文本底部就不要再處理了,如果往上滑動不在底部則繼續TextView滑動 1.2往下滑動,到達文本頂部就不要再處

scala之stripMargin和字串的使用

(1)Scala中建立多行字串使用Scala的Multiline String。 在Scala中,利用三個雙引號包圍多行字串就可以實現。 程式碼例項如: val foo = """a bc d""" 執行結果為: a    bc &n

JavaScript中字串變數

JavaScript中多行字串變數 var htmlString = "<div>This is a string.</div>"; 下面是錯誤的: var htmlSTring = "<div> This is a string. &l

Python中raw字串字串

如果一個字串包含很多需要轉義的字元,對每一個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首 r ,表示這是一個 raw 字串,裡面的字元就不需要轉義了。例如: r'\(~_~)/

Oracle SQL符號分隔的字串拆分

之前寫了一篇文章,http://blog.csdn.net/seandba/article/details/72644257 討論了從單行字串拆分到多行字串拆分,最後的解決不算圓滿。 從一個比較簡單的問題出發的,需求如下: 將源表的name列的字串拆分成一個個字元,不使用u

Notepad++ 一起編輯,或者頭部或尾部新增刪除資料

方法一: 滑鼠:alt+滑鼠左鍵拖拉選取。 鍵盤:alt+shift+方向鍵。 方法二: 使用快捷鍵Ctrl+H開啟“替換對話方塊”,在每行的開頭新增內容。 勾選左下角的“正則表示式”選項(注意一定要記得勾選) 在“查詢目標”裡輸入上尖號“^”,上尖號代表每行的開頭 在“替換

java註釋說明

@author 標明開發該類模組的作者       @version 標明該類模組的版本       @see 參考轉向,也就是相關主題       @param 對方法中某引數的說明       @return 對方法返回值的說明       @exception 對方法可

1-6 Python中raw字串字串

如果一個字串包含很多需要轉義的字元,對每一個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首r ,表示這是一個 raw 字串,裡面的字元就不需要轉義了。例如: r'\(~_~)/ \(~_~)/' 但是r'...'表示法不能表示多行字串,也不

解決TextView滑動與NestedScrollView等,滑動衝突,我的解決方案

1.首先要明白,什麼時候回TextView處理滑動,什麼時候不處理滑動 1.1往上滑動,到達文字底部就不要再處理了,如果往上滑動不在底部則繼續TextView滑動 1.2往下滑動,到達文字頂部就不要再處理了,如果往下滑動不在頂部則繼續TextView滑動 關鍵計算地方:   

Android 動態生成 radiobutton 解決 radiogroup 顯示的問題 單選

專案有需求,然後看了下網上的方法,好多都太麻煩了,而且也不怎麼靠譜。。先上效果圖 先上佈局的程式碼 <RadioGroup android:id="@+i

filebeat和logstash收集處理java日誌

2017-11-15 08:04:23:889 ERROR com.weconex.pay.callback.gateway.service.mq.receive.MerchantCallbackReceiver 173 send - 商戶回撥閘道器-- 傳送HTTP異常!引數:requestNo=1012

cocos2d-x 字串顯示以及CCLabelTTF中的bug修改

重點程式碼 //多行字串顯示(EngLish) CCLabelTTF* Dlcx_Util::dlcx_drawString( const char *  str ,float x,float y,float w,float h, GLubyte r,GLubyte g,

ES6 學習(二)[字串``,重複字串repeat,原始字串raw]

1\      我們平時定義字串一般用引號(單引號,雙引號),這些定義的單行字串內部不能出現特殊字元(換行符等等),我們可以通過轉義符號代表這些特殊字元。      引號巢狀:單引號與雙引號可以相互巢狀,單引號與單引號,雙引號與雙引號不能直接巢狀,字串內部不能使用變數。。。。

wm_concat 字串拼接以及字串拆分詳解

一、wm_concat 多行字串拼接 有如下員工部門表emp_dept,資料如下: ; 需要實現如下結果 就需要用到wm_concat 函式: sql如下: select dept_na

C++如何輸入字串(含空格)

我們要實現這樣的功能: 輸入一個整數n,表示接下來要輸入n行字串,每一行字串帶有空格,按回車表示結束該行的輸入 程式1: #include <iostream> #include <string> using namespace std; int

raw字串字串

raw字串:r'...',如下:r'\(~_~)/ \(~_~)/' 適用:如果一個字串很多需要轉義的字元,對每一個字元都進行轉義會很麻煩,就可以用raw字串,裡面的字元就不需要轉義了。 raw字串表示法不能表示多行字串,也不能表示包含'和"的字串。如果要表示多行字串,可以