C# 从包含十六进制和十进制值的字符串输出数字

C# 从包含十六进制和十进制值的字符串输出数字,c#,int,hex,type-conversion,decimal,C#,Int,Hex,Type Conversion,Decimal,我从网站上抓取数据,为我的同事获取有用的数据,而不是频繁刷新页面 C代码直接从HTML中提取数据。但是数据以一种奇怪的方式加密,并以非人类可读的字符串返回,这对我们没有帮助 例如,在表中,产品编号可能显示为“14501219”。在HTML中,包含数据的元素的内部文本是“1;45012;1;9;” 我需要知道如何: 将十六进制和十进制从同一字符串解析为int 将这些结果附加到最终输出中 到目前为止,我已经解决了这个伪代码,但我不知道它在C#中会是什么样子,或者使用什么

我从网站上抓取数据,为我的同事获取有用的数据,而不是频繁刷新页面

C代码直接从HTML中提取数据。但是数据以一种奇怪的方式加密,并以非人类可读的字符串返回,这对我们没有帮助

例如,在表中,产品编号可能显示为“14501219”。在HTML中,包含数据的元素的内部文本是“1;45012;1;9;”

我需要知道如何:

  • 将十六进制和十进制从同一字符串解析为int
  • 将这些结果附加到最终输出中
  • 到目前为止,我已经解决了这个伪代码,但我不知道它在C#中会是什么样子,或者使用什么转换方法:

    for (int i = 0; i < inputString.Length; i++)
       {
          if (inputString[i] = '&' && inputstring[i+1] = '#')
               {
                    if (inputstring[i+2 = 'x'
                    {
                         //convert to hex
                         //append to outputList
                    }
                    else
                    {
                        //convert to decimal
                        //append to outputList
                    }
                }
          else
                {
                     //convert to string literal
                }
       }
    
    for(int i=0;i

    如果您添加了字符串文字示例,我将非常感谢您的帮助。为了使http客户端不会被某些特殊字符绊倒,这些字符使用acsii表示。大多数框架都有一种处理编码url的方法。例如,在c中,您应该方法确保在读写时在内部使用和。

    您知道您看到的字符串是十六进制的字符串文字还是一系列原始字节数吗?我修复了它,Markdown在我键入时自动将原始字符串转换为所需的数字。@lrb我不确定。我如何知道它是字符串文字还是原始bytes?我认为这是字符或数字的ascii表示形式,例如,ctrl-lf有一个ascii等价物。10/13或其他,我不记得了。你只需要转义字符,也许对url.url.decode()进行编码/解码?这可以通过“HTML实体解码”来解决。这可以遍历字符串并旋转每个HTML实体(例如。“1;”)转换为相应的数字(如1)。如果手动执行,最简单的方法是使用
    Regex。使用替换函数替换
    ,并匹配
    @(\d\d);“
    。然后替换函数将获得值,如“49”,并允许返回相关转换的“1”值-请参阅ASCII字符表。