我想要移除一个字符串的最后一个字符,这个字符是一个换行符 (System.Environment.NewLine)。
我尝试了一些方法,但是都无法移除它。
例如:
myString.Remove(sFP.Length - 1)
示例2:
myString= Replace(myString, Environment.NewLine, "", myString.Length - 1)
我该如何做呢?
如果您的换行符是CR LF,那么实际上是两个连续的字符。尝试使用Length - 2
调用您的Remove
方法。
如果您想要删除字符串末尾的所有"\n"和"\r"字符,请尝试调用TrimEnd
,传递这些字符:
str.TrimEnd(vbCr, vbLf)
如果想要删除所有空白字符(包括换行符、制表符、空格等等),只需调用TrimEnd
方法而不传递任何参数即可。
Dim str As String = "Test" & vbCrLf
str = str.Substring(0, str.Length - vbCrLf.Length)
str = "Test" & Environment.NewLine
str = str.Substring(0, str.Length - Environment.NewLine.Length)
顺便提一下,它们的区别是:Environment.NewLine 是特定于平台的(例如在其他操作系统中返回不同的字符串)
你的“remove”方法没有起作用,因为你没有将此函数的返回值分配给原始字符串引用:
str = str.Remove(str.Length - Environment.NewLine.Length)
如果您想替换所有换行符:
str = str.Replace(Environment.NewLine, String.Empty)
使用:
Dim str As String
str = "cars,cars,cars"
str = str.Remove(str.LastIndexOf(","))
str
变量。返回值是一个独立的字符串。如果你想改变变量,你必须使用类似str = str.TrimEnd()
的东西。 - Mehrdad AfsharimyString = myString.TrimEnd(vbCr, vbLf)
是一种更可靠的解决方案。 - Mehrdad AfshariTrimEnd()
或Trim()
更好。除了换行符之外,还有很多空白字符,通常您希望摆脱所有尾随/前导空格。通过反射查看列表的随机有趣代码,在.Net 4上进行了测试:char[] whitespace = (char[]) typeof(string).GetField("WhitespaceChars", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null);
- Brian