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

Meg*_*ggy 4 variables split conditional-statements dart flutter

我有一个以逗号分隔的标签串,即“grubs、sheep、dog”。我怎样才能把它分成三个变量?我试过 ;

var splitag = tagname.split(",");
var splitag1 = splitag[0];
var splitag2 = splitag[1];
var splitag3 = splitag[2];
Run Code Online (Sandbox Code Playgroud)

但是,如果任何变量为空,则会引发错误。所以我试过了;

String splitagone = splitag1 ?? "";
String splitagtwo = splitag2 ?? "";
String splitagthree = splitag3 ?? "";  
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误。那么有没有另一种方法可以检查标签是否为空并使用变量?

if(tagname != null) {
      tagname.split(',').forEach((tag) {       
      //  something?    
      });
    }
Run Code Online (Sandbox Code Playgroud)

小智 7

您可以使用列表并逐项添加项目

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


Aug*_*n R 5

您可以使用 a 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
Run Code Online (Sandbox Code Playgroud)