Flutter / Dart-将逗号分隔的字符串拆分为3个变量?

时间:2020-08-10 14:34:53

标签: flutter variables dart split conditional-statements

我有一个用逗号分隔的标签字符串,即IE“ g,羊,狗”。如何将其分为三个变量?我试过了;

var splitag = tagname.split(",");
var splitag1 = splitag[0];
var splitag2 = splitag[1];
var splitag3 = splitag[2];

但是,如果任何变量为null,则将引发错误。所以我尝试了;

String splitagone = splitag1 ?? "";
String splitagtwo = splitag2 ?? "";
String splitagthree = splitag3 ?? "";  

但是我遇到了同样的错误。那么,还有另一种方法可以检查标记是否不为null并使用变量吗?

if(tagname != null) {
      tagname.split(',').forEach((tag) {       
      //  something?    
      });
    }

3 个答案:

答案 0 :(得分:4)

您可以使用Map,它更适合于具有动态长度的变量:

final tagName = 'grubs, sheep';
final split = tagName.split(',');
final Map<int, String> values = {
  for (int i = 0; i < split.length; i++)
    i: split[i]
};
print(values);  // {0: grubs, 1:  sheep}

final value1 = values[0];
final value2 = values[1];
final value3 = values[2];

print(value1);  // grubs
print(value2);  //  sheep
print(value3);  // null

答案 1 :(得分:0)

如果只想检查标记名是否为空,则使用tagname?.split()。但是,当您获得值时,您也将必须执行此操作,因为否则,您将获得空异常splitTag?[] ?? ""。如果要返回空字符串而不是null,则为可选。

答案 2 :(得分:0)

你可以使用一个列表,一个一个地添加项目

final names= 'first, second';
final splitNames= names.split(',');
List splitList;
  for (int i = 0; i < split.length; i++){
    splitList.add(splitNames[i]);
}