Ios 如何替换字符串中的所有元音?
我尝试使用以下代码:Ios 如何替换字符串中的所有元音?,ios,swift,string,flatmap,Ios,Swift,String,Flatmap,我尝试使用以下代码: let vowels: [Character] = ["a","e","i","o","u", "y"] let replaced = String(myString.map { $0 == vowels.contains($0) ? "1" : "0" }) 但我有一个错误: 二进制运算符“==”不能应用于“Character”和“Bool”类型的操作数。 怎么了 只需将$0==替换为return,您正在将字符与布尔值进行比较,这毫无意义 let vowe
let vowels: [Character] = ["a","e","i","o","u", "y"]
let replaced = String(myString.map {
$0 == vowels.contains($0) ? "1" : "0"
})
但我有一个错误:
二进制运算符“==”不能应用于“Character”和“Bool”类型的操作数。
怎么了 只需将
$0==
替换为return
,您正在将字符与布尔值进行比较,这毫无意义
let vowels: [Character] = ["a","e","i","o","u", "y"]
let replaced = String(myString.map {
return vowels.contains($0) ? "1" : "0"
})
您可以从字符串中删除元音,如下所示:
string.remove(at: string.index(where: {vowels.contains($0)})!)
用星号符号替换字符串中的所有元音
let vowels: [Character] = ["a","e","i","o","u", "y"]
var myString = "mahipal singh"
let replaced = String(myString.map {
vowels.contains($0) ? Character("*") : $0 // Replace * with your character you wanna to replace
})
print(replaced)
不同的方式,但它仍然是你想要的
let strs = "hello world"
var str = String()
let vowles = ["e","o"]
//if you want the index also use this (index,char) in strs.enumerated()
//if the index is not important use this char in strs
for (index,char) in strs.enumerated()
{
var who = String(char)
if vowles.contains(who){
print(who)
//replace or deleted by changing the value of who
who = ""
str = str + who
print(str)
}else{
str = str + who
}
}
问题有点不清楚-您在算法或编译错误方面有问题吗?让我们翻译一下:
$0
是一个字符
对象<代码>元音。包含($0)返回一个Bool
。someCharacter==someBool
对你来说有什么意义?现在,让我们回到主题,只做元音。包含($0)?“1”:“0”
,因为您只关心元音。contains($0)
。您也可以省略return,我认为两者都有更好,但忘了添加,他只选择了一个问题,为什么我要使用元音。contains($0)$0:字符(“*”
若要替换所有字符例外*,我的所有字符都将替换为*?是否阅读了代码注释..您可以设置要替换的任何字符。我已经设置了“*”作为示例是的,如果设置元音,这将替换除*以外的所有字符。包含($0)$0:字符(“*”)不会,它将所有字符替换为*,我不明白为什么。根据您的条件,元音。包含($0)$0:字符(“”),它检查元音是否包含字符串的字符,它将打印该元音字符,如果元音不包含该字符,那么它将在该位置替换为*,因此生成的字符串类似于*aia*i,它将所有辅音替换为*并打印所有的STRING元音。这将只删除第一次出现的元音
let strs = "hello world"
var str = String()
let vowles = ["e","o"]
//if you want the index also use this (index,char) in strs.enumerated()
//if the index is not important use this char in strs
for (index,char) in strs.enumerated()
{
var who = String(char)
if vowles.contains(who){
print(who)
//replace or deleted by changing the value of who
who = ""
str = str + who
print(str)
}else{
str = str + who
}
}