簡體   English   中英

如何判斷回車符是否在我的字符串中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM