如何在Swift中转换字符串?

问题描述 投票:0回答:3

我有两种情况需要将字符串转换为不同的格式。

对于前:

case 1:
  string inputs: abc, xyz, mno, & llr   // All Strings from a dictionary
  output: ["abc","xyz", "mno", "llr"]  //I need to get the String array like this.

但是当我使用这段代码时:

 var stringBuilder:[String] = [];
 for i in 0..<4 {
   stringBuilder.append("abc"); //Appends all four Strings from a Dictionary
 }

print(stringBuilder); //Output is 0: abc, 1:xyz like that, how to get desired format of that array like ["abc", "xyz"];

实际用途:

let arr = Array(stringReturn.values);
//print(arr)  // Great, it prints ["abc","xyz"];
let context = JSContext()
context?.evaluateScript(stringBuilder)   
let testFunction = context?.objectForKeyedSubscript("KK")
let result = testFunction?.call(withArguments:arr); // Here when I debugger enabled array is passed to call() like 0:"abc" 1:"xyz". where as it should be passed as above print.

其次如何在swift中替换escape char:我在qazxsw poi中使用了“\”但它没有改变。为什么以及如何逃避这个序列。

replaceOccurances(of:"\\'" with:"'");
arrays swift swift3 swift-string
3个回答
1
投票

要将字典的所有值都作为数组获取,可以使用字典的case 2: string input: \'abc\' output: 'abc' 属性:

values

使用let dictionary: Dictionary<String, Any> = [ "key_a": "value_a", "key_b": "value_b", "key_c": "value_c", "key_d": "value_d", "key_e": 3 ] let values = Array(dictionary.values) // values: ["value_a", "value_b", "value_c", "value_d", 3] ,您可以忽略不是filter类型的字典的所有值:

String

使用地图,您可以转换let stringValues = values.filter({ $0 is String }) as! [String] // stringValues: ["value_a", "value_b", "value_c", "value_d"] 的值并应用您的stringValues函数:

replacingOccurrences

0
投票

为什么不尝试这样的事情呢?问题的第1部分是:

let adjustedValues = stringValues.map({ $0.replacingOccurrences(of: "value_", with: "") })
// adjustedValues: ["a", "b", "c", "d"]

此外,第2部分似乎是微不足道的,除非我没有弄错

var stringReturn: Dictionary = Dictionary<String,Any>()
stringReturn = ["0": "abc","1": "def","2": "ghi"]
print(stringReturn)

var stringBuilder = [String]()
for i in stringReturn {
  stringBuilder.append(String(describing: i.value))
}
print(stringBuilder)

0
投票

案例1:我已实施此解决方案,希望这将解决您的问题

var escaped: String = "\'abc\'"
print(escaped)

案例2:

   let dict: [String: String] = ["0": "Abc", "1": "CDF", "2": "GHJ"]                
   var array: [String] = []

for (k, v) in dict.enumerated() {
    print(k)
    print(v.value)
    array.append(v.value)  
}
print(array)
© www.soinside.com 2019 - 2024. All rights reserved.