字符串数组函数错误,无法正确打印订单

时间:2016-06-29 18:37:51

标签: arrays swift function switch-statement

我的代码有问题。我需要按字母顺序打印最后一个默认情况,但我不确定它为什么不起作用。我必须使用我的stringArray,再添加两个字符串并在我的代码中打印出正确的大小写。显然,根据我的说法,我正在打印原始未分类列表。但我不确定我在这里做错了什么。

这是我的代码

var stringArray = ["zebra", "JAGUAR", "apple"]

func exFunction(par1: [String]) {

var parVar = par1
var secArray = [String]()

switch par1.count{

   //Reverses strings in the array
case 1...3:
    for j in par1 {
        let reverse = j.characters.reverse()
         secArray.append(String(reverse))
    }
    print(secArray)

    //Reverse the element order
case 4...6:
    for _ in 1...par1.count{

        secArray.append(parVar.popLast()!)
    }
    print(secArray)

   //Prints strings in alphabetical order
default:
    for i in par1 {
        secArray.append(i.lowercaseString)
    }
    secArray = secArray.sort()
    for p in par1 {
        print(p)
    }
}
}

exFunction(stringArray)

stringArray.append("Blue")
stringArray.append("eMerald")
exFunction(stringArray)

stringArray.append("beads")
stringArray.append("BEAR")
exFunction(stringArray)

输出应为:

[" arbez"," RAUGAJ"," elppa"]

[&#34; eMerald&#34;,&#34; Blue&#34;,&#34; apple&#34;,&#34; JAGUAR&#34;,&#34; zebra&#34;] < / p>

苹果, 珠, 熊, 蓝色, 翠, JAGUAR, 斑马

3 个答案:

答案 0 :(得分:0)

您有一个错误的错误。数组索引从0开始,因此6个元素数组中的有效索引范围为05,因此您的case 4...6可能已经走到了最后阵列。

答案 1 :(得分:0)

你有一个错字:

default:
    for i in par1 {
        containerArray.append(i.lowercaseString)
    }
    containerArray = containerArray.sort()
    for p in containerArray { // instead of par1
        print(p)
    }
}

答案 2 :(得分:0)

问题在于您循环并打印par1的元素,而不是已排序的containerArray

你怎么看待这个?

//Original Strings
var stringArray = ["zebra", "JAGUAR", "apple"]

func thirdFunction(par1: [String]) { //par1 should have a better name
    var result: [String]

    switch par1.count {
    case 1...3: //Reverses strings in the array
        result = par1.map{ String($0.characters.reverse) }

    case 4...6: //Reverse the element order
        result = par1.reverse

    default:    //Prints strings in alphabetical order
        result = par1.map{ $0.lowercaseString }.sorted()
    }

    print(result)
}

print("//Switch 1-3 Strings")
thirdFunction(stringArray)

print("//Switch 4-6 Strings")
stringArray.append("Blue")
stringArray.append("eMerald")
thirdFunction(stringArray)

print("//Switch >6 Strings")
stringArray.append("beads")
stringArray.append("BEAR")
thirdFunction(stringArray)

输出:

  

//切换1-3个字符串

     

[“arbez”,“RAUGAJ”,“elppa”]

     

//切换4-6字符串

     

[“eMerald”,“Blue”,“apple”,“JAGUAR”,“zebra”]

     

//切换&gt; 6个字符串

     

[“apple”,“beads”,“bear”,“blue”,“emerald”,“jaguar”,“zebra”]