将一个数组的元素与其他两个数组的元素进行比较,swift
Compare elements of one array to other two arrays, swift
enter image description here
我想检查我传入的值数组是否匹配或包含字母数组、nums 数组或两者的值。
检查这个的目的是做一个登录验证,我不想用正则表达式的方式来检查,而是想用当前的函数或循环来解决这个问题。
附上的图片是我尝试过的方法。我可能走错方向了
由于 for character in convertedCharaters
选取数组的每个元素,它要么在 alphabets
中,要么在 nums
中,但肯定不会同时在两者中。那是你的代码中的错误。
这里我们定义标志(numFound
- 如果有数字则为真,letterFound
- 如果有字母则为真)并遍历给定数组的所有元素。
如果元素包含在 alphabets
中,我们设置 result
并设置 letterFound = true
。如果 for 循环已经找到 num
,标志 numFound
必须是 true
。因此我们知道我们找到了两者(字母和数字),所以我们可以立即 return "contains both"
.
如果元素包含在 nums
中,则使用相同的方法。
var result = ""
var numFound = false
var letterFound = false
for character in convertedCharaters {
if alphabets.contain(character) {
result = "contains only letter"
letterFound = true
if numFound {
return = "contains both"
}
} else if nums.contains(characters) {
result = "contains only nums"
numFound = true
if letterFound {
return = "contains both"
}
}
}
return result
注意num和letter都找不到的情况!我没有考虑到。
enter image description here
我想检查我传入的值数组是否匹配或包含字母数组、nums 数组或两者的值。
检查这个的目的是做一个登录验证,我不想用正则表达式的方式来检查,而是想用当前的函数或循环来解决这个问题。
附上的图片是我尝试过的方法。我可能走错方向了
由于 for character in convertedCharaters
选取数组的每个元素,它要么在 alphabets
中,要么在 nums
中,但肯定不会同时在两者中。那是你的代码中的错误。
这里我们定义标志(numFound
- 如果有数字则为真,letterFound
- 如果有字母则为真)并遍历给定数组的所有元素。
如果元素包含在 alphabets
中,我们设置 result
并设置 letterFound = true
。如果 for 循环已经找到 num
,标志 numFound
必须是 true
。因此我们知道我们找到了两者(字母和数字),所以我们可以立即 return "contains both"
.
如果元素包含在 nums
中,则使用相同的方法。
var result = ""
var numFound = false
var letterFound = false
for character in convertedCharaters {
if alphabets.contain(character) {
result = "contains only letter"
letterFound = true
if numFound {
return = "contains both"
}
} else if nums.contains(characters) {
result = "contains only nums"
numFound = true
if letterFound {
return = "contains both"
}
}
}
return result
注意num和letter都找不到的情况!我没有考虑到。