Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Ios Swift将字符串从一个字母放到所有字母的数组中_Ios_Arrays_Swift_String - Fatal编程技术网

Ios Swift将字符串从一个字母放到所有字母的数组中

Ios Swift将字符串从一个字母放到所有字母的数组中,ios,arrays,swift,string,Ios,Arrays,Swift,String,我想通过编程将字符串添加到数组中,但从第一个字母到最后一个字母。但不是每封信都是分开的 大概是这样的: 我试过这个: let username = "Julius" //(1) var name = "" //(2) var i:Int! = 0 while i != username.count { i += 1 //get nth(i) char of String(1) //add char to String (2) //add to Arra

我想通过编程将字符串添加到数组中,但从第一个字母到最后一个字母。但不是每封信都是分开的

大概是这样的:

我试过这个:

let username = "Julius" //(1)
var name = "" //(2) 
var i:Int! = 0 
while i != username.count { 
    i += 1 
    //get nth(i) char of String(1) 
    //add char to String (2) 
    //add to Array
} 

你可以用这样的东西

var str = "julius"
var nameArray = [String]()
var item = ""
for char in Array(str) {
     item += String(char)
    nameArray.append(item)
}
print(nameArray)
编辑


试试这个功能

func addLetters(string: String)->[String]{
    var stringArray = [String]()

    for (i, s) in string.enumerated(){

        if i == 0 {
            stringArray.append(String(s))
        }
        else{
            stringArray.append(stringArray[i - 1] + String(s))
        }

    }
    print(stringArray)
    return stringArray
}

addLetters(string: "Julius")
//Print: ["J", "Ju", "Jul", "Juli", "Juliu", "Julius"]
让string=您可以使用reduce,它将对字符进行迭代,并允许您访问所有迭代的字符:

let usernameAsArray = "julius".reduce([]) { $0 + [($0.last ?? "") + "\($1)"] }
你可以使用reduce。方法请参考苹果官方文件

代码:
你应该先尝试一些东西。请提供你的任何代码,这样我们可以看到在哪里可以帮助指导你。一个简单的for循环将完成这项工作。你有多少个项目,多少个字母,你可以迭代。您可以使用dropLast创建子字符串。。。你试过什么吗?我试过这个:让username=Julius//1 var name=//2 var I:Int!=0而我!=username.count{i+=1//获取字符串1的第n个字符//将字符添加到字符串2//添加到数组}Arraystr是不必要的。你们可以直接对str中的char进行处理。String已经和序列一致了。我已经反复测试了这个答案,它是正确的。有人能解释一下为什么我的答案标错了吗?或者,如果它被标记为错误,请更正它。
let usernameAsArray = "julius".reduce([]) { $0 + [($0.last ?? "") + "\($1)"] }
"Julius".reduce([]) { $0 + [($0.last ?? "") + "\($1)"] }