我有以下字符串:"lat/lng: (-6.2222391,106.7035684)"
我只需要在该string
中获得那些双重数据类型。那么如何只获取* -6.222239 * 1和 106.7035684 作为字符串变量?
如何获取该括号中的数字?
所以我认为我在"("
之后和","
之前得到了字符串,以得到"-6.2222391"
,也在","
之后和")"
之前得到了{{1 }}
但是我不知道如何在代码中得到它
答案 0 :(得分:1)
您可以使用正则表达式:
let str = "lat/lng: (-6.2222391,106.7035684)"
let rg = NSRange(location: 0, length: (str as NSString).length)
let latRegex = try! NSRegularExpression(pattern: "(?<=\\()[+-\\.0-9]+(?=,)")
(?<=\\()
是正向查找,它查找(
之前的任何内容,[+-\\.0-9]+
急切地寻找至少一个或多个字符,这些字符可以是+
,-
,.
或从0
到{{ 1}},9
是正向超前,它与后跟(?=,)
的所有内容匹配。现在让我们使用以下正则表达式:
,
以同样的方式,我们可以得到经度:
let latitude: Double? = latRegex.matches(in: str, range: rg)
.compactMap { Double(str[Range($0.range, in: str)!]) }
.first
if let lat = latitude {
print(lat) //-6.2222391
}
PS:为了简洁起见,我在这里和那里都使用过强制展开
答案 1 :(得分:1)
let source = "lat/lng: (-6.2222391,106.7035684)"
let splited = source.components(separatedBy: "lat/lng: ")[1] //separating
let removed = splited.replacingOccurrences(of: "(", with: "").replacingOccurrences(of: ")", with: "") // removing
let coord = removed.components(separatedBy: ",") // removing
let lat = Double(coord[0])
let lng = Double(coord[1])
答案 2 :(得分:0)
您已经收到了一些很好的答案。但是我想我想出了一个更紧凑的版本。
您需要关心out2 <- do.call(c, lapply(seqVec, function(i)
lapply((i+1):length(colNames), function(j)
cbind(ID = data$ID, data[colGroups %in% colNames[c(i, j)]]))))
-
0~9
和.
,
仅考虑具有两个组成部分,然后将它们分开使用。
看到这个:
,
答案 3 :(得分:0)
尝试一下:
<div class="image-container">
<img [src]="url ? url : 'https://www.w3schools.com/howto/img_avatar.png'" class=""> <br/>
<input type='file' (change)="onSelectFile($event)" class="select-profile-picture">
<span class="message">Tap here to select your picture</span>
</div>