使用 C# 去除空格时遇到问题

本文关键字:遇到 问题 空格 使用 | 更新日期: 2023-09-27 17:56:16

我在下面粘贴了一个我编写的代码截图,当缓冲区中有数据时,它会从串行端口读取一行数据,但是我正在打印我不想要的额外空白行。知道我做错了什么吗?

static void Port1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    int i = 0;
    int end = -1;
    SerialPort Port1 = (SerialPort)sender;
    String GPSMessage = "";
    while (end == -1)
    {
        int GPStoRead = Port1.BytesToRead;
        byte[] GPSbuffer = new byte[GPStoRead];
        Port1.Read(GPSbuffer, 0, GPSbuffer.Length);
        buffer = Utility.CombineArrays(buffer, GPSbuffer);
        for (i = 0; i < buffer.Length; i++)
        {   
            if (buffer[i] == ''r')
            {
                end = i;                           
            }    
        }                                  
    }
    GPSMessage += new String(System.Text.Encoding.UTF8.GetChars(Utility.ExtractRangeFromArray(buffer, 0, end)));
    GPSMessage.TrimEnd();
    if (GPSMessage != "")
    {
        Debug.Print(GPSMessage); 
    }
    buffer = Utility.ExtractRangeFromArray(buffer, end, buffer.Length - end);
}

使用 C# 去除空格时遇到问题

裁切返回裁切的文本。更改为:

GPSMessage = GPSMessage.TrimEnd();

行尾因平台而异,可以是 ''r、''r' 或 '。 Environment.NewLine将是您的编译平台的任何行尾字符。

尝试一个简单的替换来去除换行符?

string foo = GetSomeSortOfMultilineText();
foo = foo.Replace(Environment.NewLine, String.Empty);

不确定这是否完全适合您要做的事情,但是...给你。:)