带有MessageBox的C#String.SubString不显示任何内容

带有MessageBox的C#String.SubString不显示任何内容,c#,string,substring,messagebox,C#,String,Substring,Messagebox,我试图使用消息框显示字符串的一部分,为此我使用字符串.SubString方法。但是,当我运行代码时,不会显示消息框,也不会抛出错误 为了进行故障排除,在尝试显示子字符串之前,我会在消息框中显示整个字符串 这将显示以下内容(Received | 22 |): 我想显示字符串的数字部分,但是当我尝试这样做时,什么也不显示。有人能看出哪里出了问题吗?代码如下: public void parseMessage(string theMessage) { String message = the

我试图使用
消息框
显示
字符串
的一部分,为此我使用
字符串.SubString
方法。但是,当我运行代码时,不会显示
消息框
,也不会抛出错误

为了进行故障排除,在尝试显示子字符串之前,我会在
消息框中显示整个字符串

这将显示以下内容(
Received | 22 |
):

我想显示字符串的数字部分,但是当我尝试这样做时,什么也不显示。有人能看出哪里出了问题吗?代码如下:

public void parseMessage(string theMessage)
{
    String message = theMessage.Replace("\n", String.Empty);

    MessageBox.Show("Received |" + message + "|");

    String zoneNumber = message.Substring(5, message.Length);

    if (message.StartsWith("<BID>"))
    {
        MessageBox.Show("Bid received for zone " + zoneNumber);
    }
}
公共消息(字符串消息)
{
String message=theMessage.Replace(“\n”,String.Empty);
MessageBox.Show(“已接收的|”+消息+“|”);
String zoneumber=message.Substring(5,message.Length);
if(message.StartsWith(“”)
{
MessageBox.Show(“收到的区域投标”+Zoneumber);
}
}

我无法访问您的链接图像,因此我不知道
消息包含什么,但是

String zoneNumber = message.Substring(5, message.Length);
应引发异常,因为它将使字符串长度溢出5个字符

使用

相反。

换衣服怎么样

String zoneNumber = message.Substring(5, message.Length);

我想显示字符串的数字部分,但是当我尝试执行此操作时,不会显示任何内容

这是因为,在查看您的消息时,它有前导空格,而您正试图使用(“”

首先,
TrimStart
,然后尝试使用
StartsWith
,或者只执行
包含的操作

StartsWith

if (message.TrimStart().StartsWith("<BID>"))
{
    MessageBox.Show("Bid received for zone " + zoneNumber);
}
if(message.TrimStart().StartsWith(“”)
{
MessageBox.Show(“收到的区域投标”+Zoneumber);
}

您可以使用rplace而不是SubString

if (message.StartsWith("<BID>"))
{
    MessageBox.Show("Bid received for zone " + message.Replace("<BID>",""));
}
if(message.StartsWith(“”)
{
MessageBox.Show(“区域收到投标书”+消息。替换(“,”);
}

所以问题是
如果(message.StartsWith(“”))不返回true

这有用吗

public void parseMessage(string theMessage)
{
       String message = theMessage.Replace("\r", String.Empty).Replace("\n", String.Empty).Replace("\r\n", String.Empty);
       MessageBox.Show("Received |" + message + "|");
       String zoneNumber = message.Substring(5, message.Length);
       if (message.TrimStart().StartsWith("<BID>"))
       {
          MessageBox.Show("Bid received for zone " + zoneNumber);
       }
}
公共消息(字符串消息)
{
字符串消息=message.Replace(“\r”,String.Empty)。Replace(“\n”,String.Empty)。Replace(“\r\n”,String.Empty);
MessageBox.Show(“已接收的|”+消息+“|”);
String zoneumber=message.Substring(5,message.Length);
if(message.TrimStart().StartsWith(“”)
{
MessageBox.Show(“收到的区域投标”+Zoneumber);
}
}
试试这个:

String bidMarker = "<BID>";
int startLoc = message.IndexOf(bid);
if (startLoc != -1)
{
    String zoneNumber = message.Substring(startLoc + bidMarker.Length).Trim();
    MessageBox.Show("Bid received for zone " + zoneNumber);
}
String bidMarker=”“;
int STARTOC=message.IndexOf(bid);
如果(startLoc!=-1)
{
String zoneumber=message.Substring(startOC+bidMarker.Length).Trim();
MessageBox.Show(“收到的区域投标”+Zoneumber);
}

你能将信息以文本形式发布,而不是链接到图像共享站点吗?@DStanley完成,你可能已经自己编辑过了:)虽然我不能100%确定,但看起来它实际上是以“`”开头的-注意前导空格。@rudiviser,很简单。他可能无法到达那个地点。这取决于他在哪里。@Rudiviser如果我能访问imgur.com,我会的。
public void parseMessage(string theMessage)
{
       String message = theMessage.Replace("\r", String.Empty).Replace("\n", String.Empty).Replace("\r\n", String.Empty);
       MessageBox.Show("Received |" + message + "|");
       String zoneNumber = message.Substring(5, message.Length);
       if (message.TrimStart().StartsWith("<BID>"))
       {
          MessageBox.Show("Bid received for zone " + zoneNumber);
       }
}
String bidMarker = "<BID>";
int startLoc = message.IndexOf(bid);
if (startLoc != -1)
{
    String zoneNumber = message.Substring(startLoc + bidMarker.Length).Trim();
    MessageBox.Show("Bid received for zone " + zoneNumber);
}