Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 根据分隔符元素将数组一分为二_Arrays_Swift_Split - Fatal编程技术网

Arrays 根据分隔符元素将数组一分为二

Arrays 根据分隔符元素将数组一分为二,arrays,swift,split,Arrays,Swift,Split,我有一个字符串数组,我想把它分成两部分。一个数组,包含分隔符前面的元素,以及分隔符后面的另一个元素 让sourceArray=[“那些”、“正在”、“拆分”、“按字符串”] //拆分此数组的字符串:“拆分” //预期输出:[[“是”],[“由字符串”]] 我尝试将数组连接到一个字符串中,并使用.components(),但这会删除原始数组的实际元素。有没有一种方法可以使用内置的方法来实现这一点,或者我需要循环使用它吗?您可以试试 let sourceArray = ["items t

我有一个字符串数组,我想把它分成两部分。一个数组,包含分隔符前面的元素,以及分隔符后面的另一个元素

让sourceArray=[“那些”、“正在”、“拆分”、“按字符串”]
//拆分此数组的字符串:“拆分”
//预期输出:[[“是”],[“由字符串”]]
我尝试将数组连接到一个字符串中,并使用
.components()
,但这会删除原始数组的实际元素。有没有一种方法可以使用内置的方法来实现这一点,或者我需要循环使用它吗?

您可以试试

let sourceArray = ["items that", "are", "split", "by a string"]

let index = sourceArray.split(separator: "split").map { Array($0) }

print(index)

你可以这样做:

var sourceArray = ["items that", "are", "split", "by a string"];
var array1 = [];
var array2 = [];
var firstArray = true;
for (var i = 0; i<sourceArray.lenght; i++){
   if (sourceArray[i]!=="split") {
      if (firstArray){
          array1.push(sourceArray[i]);
      }
      else {
          array2.push(sourceArray[i]);
      }
   }
   else {
      firstArray = false;
   }
var sourceArray=[“那些”、“是”、“拆分”、“按字符串”];
var array1=[];
var array2=[];
var firstArray=true;

对于(var i=0;iop没有提到用例至少我们希望它有一个分隔符轻松修复是使用函数的扩展版本:
let singleSplit=sourceArray.split(分隔符:“split”,maxSplits:1,省略EmptySubsequences:false)这个C++代码在SWIFT中是非常令人沮丧的,你应该总是使用新的高级函数,因为它会提供性能和紧凑的代码,你是对的,最好是使用分裂方法,比如你提到它。我只是想展示另一种方法来做它。这个问题还具体地说,不循环通过数组。