我的字符串中有字符串类型,名称2加倍和1布尔值。请帮我解析一下。
dependencies {
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile project(':gvr-android-sdk/libraries:common')
compile project(':gvr-android-sdk/libraries:commonwidget')
compile project(':gvr-android-sdk/libraries:panowidget')
compile project(':gvr-android-sdk/libraries:videowidget')
compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
然后我卡住了。对我来说,2个双打中的哪个是价格而且重量是什么并不重要。
答案 0 :(得分:4)
您可以使用string.Split
。
string line = "Candy Red Riding Hood,0.17,2.21,true";
var parts = line.Split(',');
string stringValue = parts[0];
double weight = double.Parse(parts[1], CultureInfo.InvariantCulture);
double price = double.Parse(parts[2], CultureInfo.InvariantCulture);
bool boolValue = Convert.ToBoolean(parts[3]);
答案 1 :(得分:1)
如果你知道你的线的模式,那么你可以定义一个正则表达式和其中的组。
https://regex101.com/r/kLphgk/1
代码看起来像这样
var rgx = new Regex(@"^(?<type>\w+)\s*(?<name>[^,]+),(?<weight>\d+(.\d+)?),(?<price>\d+(.\d+)?),(?<state>(true|false))$");
var match = rgx.Match("Candy Red Riding Hood,0.17,2.21,true");
var obj = new {
Type = match.Groups["type"].Value,
Name = match.Groups["name"].Value,
Price = double.Parse(match.Groups["price"].Value),
Weight = double.Parse(match.Groups["weight"].Value),
State = bool.Parse(match.Groups["state"].Value)
};