如何从JSON类型的字符串中提取变量(C#)[duplicate]

hgc7kmma  于 2022-11-19  发布在  C#
关注(0)|答案(4)|浏览(200)

此问题在此处已有答案

How can I parse only the float number from the string?(3个答案)
三年前就关门了。
如何从JSON文件的字符串中提取浮点变量?
以下是一个可能的字符串示例(字符在逗号后停止):

"x": "1.234567",

字符串在双引号前有12个空格,我需要提取的数字是1.234567
点后的小数位数可以大于6。
双引号也在字符串中,而最后的逗号并不总是在那里

jgovgodb

jgovgodb1#

如果您的字符串采用该格式,则可以在双引号上拆分,并从结果数组中提取数字:

var str = "      \"x\":\"123.456\""; //example
    var number = Convert.ToDouble(str.Split('"')[3]);
uemypmqf

uemypmqf2#

我认为这段代码有帮助:

Convert.ToDouble("1.234567")

或者将字符串变量放入其中。

0sgqnhkj

0sgqnhkj3#

一个简单的正则表达式可以从字符串中提取数字:

var str = "      \"x\": \"1.234567\"";  //example
    var regex = new Regex("[\\d.]+");
    var match = regex.Match(str).Groups[0].Value;
    var number = Convert.ToDouble(match);

说明:正则表达式将第一组数字和点匹配在一起,并将其放在Group[0]中。2如果您的字符串可能在其他任何地方包含数字或点,则需要修改正则表达式以精确定位您想要的数字。3但这满足了您问题中的示例。

0sgqnhkj

0sgqnhkj4#

如果您不想使用Regex,并且字符串的格式始终为该格式,则可以执行以下操作:

public string myString= "\"x\": \"1.234568\"";
public string[] subStrings;

void Start()
{

    subStrings = myString.Split('\"');
    float myFloat = Convert.ToSingle(subStrings[3]);

}

方法myString.Split(char[])返回一个字符串数组,在字符串数组中找到作为分隔符的字符时,将字符串分割。如果您的格式总是这样设置的,那么subString[]中的第4个元素就是您的数字。

相关问题