我的代码有问题。我需要按字母顺序打印最后一个默认情况,但我不确定它为什么不起作用。我必须使用我的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, 斑马
答案 0 :(得分:0)
您有一个错误的错误。数组索引从0
开始,因此6个元素数组中的有效索引范围为0
到5
,因此您的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”]