我正在使用Swift 3并且有一个包含0&1和#1的长字符串。
防爆。 let oneArray = binString.components(separatedBy: "0")
我正在尝试将此字符串拆分为两个数组,以确定有多少1和0都在重复。
当我调用方法let zeroArray = binString.components(separatedBy: "1")
和["1111", "", "1111111111", "", "1111111111", "", "", "111", "", "", "", "", "", "", "", "", "111", "", "", "1111111111", "", "", "", "", "", "", "", "1111", "", "1111", "", "1111111111", "", "", "", "", "", "", "", "", "111", "", "", "1111111111", "", "1111", "", "1111", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
时,我们为示例字符串获取的返回数组是:
["", "", "", "", "00", "", "", "", "", "", "", "", "", "", "00", "", "", "", "", "", "", "", "", "", "000", "", "", "000000000", "", "", "000", "", "", "", "", "", "", "", "", "", "00000000", "", "", "", "00", "", "", "", "00", "", "", "", "", "", "", "", "", "", "000000000", "", "", "000", "", "", "", "", "", "", "", "", "", "00", "", "", "", "00", "", "", "", "0000000000000000000"]
@interface ViewController : UIViewController{
IBOutlet UITextField *Signup;
IBOutlet UITextField *Login;
}
@property(nonatomic, retain)IBOutlet UITextField *Signup;
@property(nonatomic, retain)IBOutlet UITextField *Login;
-(IBAction)TYPE:(id)sender;
我们不明白为什么我们只能返回只有0和1的数组而不是空字符串作为数组元素。看起来之前没有其他人问过这样的问题,我们感到很困惑,因为这似乎是用来从字符中划分字符串的一般方法。
我想知道如何按照我们想要的方式分离这些字符串。这看起来像一个奇怪的情况
答案 0 :(得分:1)
components函数使用字符作为分隔符,因此它不会将其包含在结果数组中,并将连续分隔符视为空字符串元素。
你能做的是:
line
通过在1/0系列中的每个中断之间插入逗号,您可以准确地将分隔符放在需要它们的位置。
系列数组将包含连续的1和连续的0。如果你想要将所有1和所有0的系列组合在一起,你可以对它进行排序。
答案 1 :(得分:1)
分隔符字符串的每次出现都会将原始字符串拆分为新字符串,因此连续出现将导致空字符串。
你接近你想要的。只需在每行末尾添加filter { !$0.isEmpty }
语句即可删除不需要的空字符串:
let binString = "1111001111111111001111111111000111000000000111000111111111100000000111100111100111111111100000000011100011111111110011110011110000000000000000000"
let oneArray = binString.components(separatedBy: "0").filter { !$0.isEmpty }
let zeroArray = binString.components(separatedBy: "1").filter { !$0.isEmpty }
print(oneArray)
print(zeroArray)
<强>输出:强>
["1111", "1111111111", "1111111111", "111", "111", "1111111111", "1111", "1111", "1111111111", "111", "1111111111", "1111", "1111"] ["00", "00", "000", "000000000", "000", "00000000", "00", "00", "000000000", "000", "00", "00", "0000000000000000000"]