[英]How to tell if carriage return is in my string?
我有一個文本框控件,允許輸入按鈕的用戶輸入詳細信息,例如地址或其他人口統計信息。 由於地址的默認值如下所示:
Address 1
Address 2
City, st
Zip
我想知道是否有一種方法可以確定是否在這里使用Enter鍵來換行嗎? 我環顧四周,目前唯一的辦法就是在VB中檢查vbCrLf,但是我沒有在代碼中看到它。
測試數據將類似於以下內容
123 N Street
S Test Street
Test City, XX
91883
下面的代碼是我要替換的所有回車,並用空格替換的代碼
Text.Replace(vbCrLf, " ")
除非上述測試值之間有實際間隔,否則此vbCrLf不會接回車嗎?
如果您使用的是MultiLine
文本框(如您的示例所示),則無需搜索換行符並將其替換為空格。
您可以簡單地使用Lines屬性,其中每行的存儲位置彼此分開,然后使用字符串Join方法創建單個行字符串
Dim singleLine = string.Join(" ", myTextBox.Lines)
當然,如果您只是想知道是否有換行符,則只需檢查Lines數組的Length屬性
vbCrLf實際上是指兩個字符,回車符(13)和換行符(10)。
我會分別搜索和替換。 這不是嚴格必要的(因為replace可以同時處理兩個字符),但是可以捕獲用戶剪切和粘貼信息的實例,而不必直接在文本框中鍵入內容。
Text = Text.Replace(vbCr, " ")
Text = Text.Replace(vbLf, " ")
要么
Text = Text.Replace(vbCr, " ").Replace(vbLf, " ")
https://msdn.microsoft.com/zh-cn/library/microsoft.visualbasic.constants.vbcrlf(v=vs.110).aspx
Replace()
函數確實可以正確檢測並用替換替換所有出現的目標-不管前面還是后面都有空格。
但是,請考慮String
對象是不可變的,在實例化之后不能更改。 因此, Replace()
不會修改現有對象,而是返回一個新字符串作為其結果。
要實際查看函數調用的結果,您需要按照以下步驟進行操作:
newString = Text.Replace(vbCrLf, " ")
我花了很多時間來解決這個問題,遇到的解決方案是:
text = text.Replace(" ", ControlChars.CrLf)
對不起,我不記得我在哪里找到了解決方案,但是如果我記得,我會在這里發布鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.