嗨,我想基于MacOS中的用户输入快速创建一个字符串。
例如,如果用户输入了字符串
” 第1行fadsjkf
第2行fasdjkfla
第3行fasdnfkdf
”
我想在每一行中读取字符串,并插入一些字符或类似字符串
” XYZ Line 1 fadsjkf
ABC Line 2 fasdjkfla
DEF Line 3 fasdnfkdf
”
如何实现此功能?
答案 0 :(得分:0)
在您的示例中,用户输入了3行吗?如果是这样,您可以将字符串拆分为数组,在每个项目的开头添加文本并重新组成字符串。
会是这样的:
let someText = """
Line 1 fadsjkf
Line 2 fasdjkfla
Line 3 fasdnfkdf
"""
// May be your text comes as let someText = "Line 1 fadsjkf\nLine 2 fasdjkfla\nLine 3 fasdnfkdf"
let toBeAppended = ["XYZ", "ABC", "DEF"] // Do you want to compute automatically ?
var lines = someText.split(separator: "\n").map { String($0) }
var newLines = ""
for (iLine, line) in lines.enumerated() {
let newLine = toBeAppended[iLine] + " " + line
newLines = newLines + newLine + "\n"
}
print(newLines)
并获得:
XYZ Line 1 fadsjkf
ABC Line 2 fasdjkfla
DEF Line 3 fasdnfkdf
已编辑
如果您希望多于3行且行数不确定:
let someText = "Line 1 fadsjkf\nLine 2 fasdjkfla\nLine 3 fasdnfkdf\nLine 4 fasdjkflaa\nLine 5 fasdjkflab\nLine 6 fasdjkflac\nLine 7 fasdjkflad\nLine 8 fasdjkflae\nLine 9 fasdjkflaf\nLine 10 fasdjkflag\nLine 11 fasdjkflah\nLine 12 fasdjkflai"
let toBeAppended = ["XYZ", "ABC", "DEF", "GHI", "JKL", "MNO", "PQR", "STU", "VWX", "YZ@"] // 9 here, up to you to add more ; beyond this, add for instance @@@
var lines = someText.split(separator: "\n").map { String($0) }
var newLines = ""
for (iLine, line) in lines.enumerated() {
let newLine = iLine < toBeAppended.count ? toBeAppended[iLine] + " " + line : "@@@ " + line
newLines = newLines + newLine + "\n"
}
print(newLines)
您得到:
XYZ Line 1 fadsjkf
ABC Line 2 fasdjkfla
DEF Line 3 fasdnfkdf
GHI Line 4 fasdjkflaa
JKL Line 5 fasdjkflab
MNO Line 6 fasdjkflac
PQR Line 7 fasdjkflad
STU Line 8 fasdjkflae
VWX Line 9 fasdjkflaf
YZ@ Line 10 fasdjkflag
@@@ Line 11 fasdjkflah
@@@ Line 12 fasdjkflai