如果您查看文档,您会发现实际上并没有string.Remove需要删除字符的重载。
我希望char被隐式转换为 anint并且您正在点击string.Remove(startIndex):
返回一个新字符串,其中当前实例中从指定位置开始并一直到最后一个位置的所有字符都已被删除。
\n将转换为字符的十进制值 10,因此string.Remove作为位置 10传递,因此之后的所有内容都将被删除,这就是我们看到的情况:192.168.20 是 10 个字符长。
如果您只想删除包括 first 之后的所有内容\n,我会建议如下:
int idx = input.IndexOf("\n", StringComparison.InvariantCulture);
if (idx != -1)
{
input = input.Remove(idx);
}
Run Code Online (Sandbox Code Playgroud)
或者简单地更换所有的实例\n,使用replace(我知道你说你不想这样做,但以防万一):
input = input.Replace("\n", string.Empty, StringComparison.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)