微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从字符数组中删除这个“”?

如何解决如何从字符数组中删除这个“”?

这作为字符串返回给我:

result: vier­hundert­sieben­und­achtzig

我将字符串投射到数组中。

self.randomNumberText = Array(self.numberConfig.numberString)
print("\(self.randomNumberText)")
["v","i","e","r","­","h","u","n","d","t","s","b","a","c","z","g"]

单词之间有空心引号("")。如何删除这些双引号(“”)? 我在数组中转换字符串的原因:我检查从 TextField 输入的每个字母是否拼写正确。但是,由于中间有“”这个符号,我无法检查它是否拼写正确。

号码配置

class NumberConfig: ObservableObject {
    
    @Published var numberString: String = "-"

    @Published var randomNumber: Int = 0 {
        didSet {
            self.numberString = self.numberToText(number: randomNumber)
        }
    }
    
    func numberToText(number: Int) -> String {
        let formatter = NumberFormatter()
        formatter.locale = Locale(identifier: "de")
        formatter.numberStyle = .spellOut
        formatter.minimumIntegerDigits = 2
        let result = formatter.string(for: number) ?? "-"
        print("result: \(result)")
        return result
    }
}

查看

    import Combine
    struct NumberToTextView: View {
        @Observedobject var numberConfig = NumberConfig()
        @Observedobject var textBindingManager = TextBindingManager(limit: 1)
        @Observedobject var speechConfig = SpeechConfig()
        @State var randomNumber: [String.Element] = []
        @State var randomNumberText: [String.Element] = []
        @State var isCorrectAnswer: Bool = false
        @State var isTrueStep: Bool = false
        var body: some View {

....
    ZStack(alignment: .topLeading) {
                        
                        TextField("Sayıyı yazınız",text: $textBindingManager.text)
                            .padding()
                            .background(Color(UIColor.secondarySystemBackground))
                            .cornerRadius(15)
                            .onReceive(Just(self.textBindingManager.text),perform: { value in
                                let result = zip(self.randomNumberText,value).map({ $0 == $1 }).reduce(true,{$0 && $1})
                                if result && !self.textBindingManager.text.isEmpty {
                                    self.isTrueStep = true
                                    print("true")
                                    print("valeu: \(value) - \(self.randomNumberText)")
                                } else {
                                    self.isTrueStep = false
                                    print("falsee")
                                }
                            })
                            
                        Circle()
                            .foregroundColor(self.isTrueStep ? .green : .red)
                            .frame(width: 10,height: 10)
                            .padding(5)
                    }
                    .padding(.horizontal)
...
        }
    }

解决方法

过滤 Character 数组有点棘手,因为空字符串实际上不是字符。

不过有一种方法:过滤所有 ASCII 字符

self.randomNumberText = Array(self.numberConfig.numberString).filter{$0.isASCII }

或过滤所有letters

self.randomNumberText = Array(self.numberConfig.numberString).filter{$0.isLetter }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?